Конференция "Corba" » их Excel в *.txt [Delphi, Windows]
 
  • Aleksandrrr (02.03.08 22:14) [0]
    Здравствуйте
    Очень вас прошу помочь в следующем вопросе.
    (работаю с Delphi7, WinXPProEng, Office2003Rus)
    Задача заключается в том, чтобы перенести текст из Excel формат *.txt c сохранением форматирования(чтобы все колонки в txt были выровнены. Сохранение документа Excel как .txt не дает нужного результата - смешиваются столбцы) и добавить к каждой строчке по несколько слов. В каждом столбце 2 типа данных : integer и string.
     Пробую использовать COM-серверы для подключения к Excel. Подключаться к Excel удается, а вот дальше - проблемы.

    Нужно ли  активизировать открытый лист.
    Пытаюсь следующим образом:
    xcelWorksheet1:=ExcelApplication1.Worksheets[Edit1.Text]  as ExcelWorksheet;
    ExcelWorksheet1.Activate (LOCALE_USER_DEFAULT);

    но вылазит ошибка при компиляции Incopatible types: 'TExcelWorksheet' and '_'Worksheet' .

    Пробовал не указывать на открытый лист, компиляция проходила успешно, но данные из Excel не передавались:
    'Interface not supported'.
    Вот код программы

    unit Unit1;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, OleServer, Excel2000, ExcelXP;
      // äëÿ ðàáîòû ñ COM-ñåðâåðàìè äîáàâèòü OleServer è   ExcelXP

    type
     TForm1 = class(TForm)
       ExcelApplication1: TExcelApplication;
       ExcelWorkbook1: TExcelWorkbook;
       ExcelWorksheet1: TExcelWorksheet;
       Button3: TButton;
       OpenDialog1: TOpenDialog;
       Edit1: TEdit;
       Button1: TButton;
       ListBox1: TListBox;

       procedure Button3Click(Sender: TObject);
       procedure Button1Click(Sender: TObject);
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form1: TForm1;

           //äëÿ ðàáîòû ñ COM-ñåðâåðàìè
     ExcelAppication1: TExcelApplication;
     ExcelWorkBook1: TExcelWorkbook;
     ExcelWorkSheet1: TExcelWorkSheet;

     Sheet: OleVariant;
     eee: string;
     a: integer;

    implementation

    {$R *.dfm}
    //procedure TForm1.Button3Click(Sender: TObject);
    //begin
    // ExcelWorksheet1.Activate;
    //end;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
           //äëÿ ðàáîòû ñ COM-ñåðâåðàìè
      if OpenDialog1.Execute
         then ExcelApplication1.Workbooks.Add(
         OpenDialog1.FileName, LOCALE_USER_DEFAULT);
        ExcelApplication1.Visible[LOCALE_USER_DEFAULT]:=true;

        //ExcelWorksheet1:=ExcelWorkbook1.Worksheets [1] as ExcelWorksheet;
        //ExcelWorksheet1.Activate (LOCALE_USER_DEFAULT);

    ExcelWorksheet1:=ExcelApplication1.Worksheets[Edit1.Text]  as ExcelWorksheet;
    //ExcelWorksheet1.Activate (LOCALE_USER_DEFAULT);

    end;
     var MyRange, V:OleVariant;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       MyRange:=ExcelWorksheet1.Range['B2', EmptyParam];
       V:=MyRange.Text;
       Edit1.Text:=MyRange.Text;

     //ListBox1.Items.Clear;
     //for a:=1 to 100 do begin
     //eee:=Sheet.Cells[a,2];
     //ListBox1.Items.Add(eee);
     //Edit1.Text:=ExcelWorksheet1.Cells.Item[2,2];
      //ExcelWorksheet1.Cells.Item[1,1]:= Edit1.Text;

    end;

    end.
  • Сергей М. © (03.03.08 09:25) [1]

    > перенести текст из Excel формат *.txt c сохранением форматирования


    Это у тебя тот самый "перенос" что ли

    >    V:=MyRange.Text;
    >    Edit1.Text:=MyRange.Text;


    ?
  • Aleksandrrr (03.03.08 09:43) [2]
    Да. Неверно?
  • Aleksandrrr (03.03.08 09:44) [3]
    Да. Неверно?
  • Сергей М. © (03.03.08 09:54) [4]
    И что ты ожидал при этом увидеть в окне edit1-контрола ?
    Приведи пример ..
  • имя (31.10.08 09:37) [5]
    Удалено модератором
 
Конференция "Corba" » их Excel в *.txt [Delphi, Windows]
Есть новые Нет новых   [120360   +40][b:0][p:0]