-
Здравствуйте Очень вас прошу помочь в следующем вопросе. (работаю с 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.
-
> перенести текст из Excel формат *.txt c сохранением форматирования
Это у тебя тот самый "перенос" что ли
> V:=MyRange.Text; > Edit1.Text:=MyRange.Text;
?
-
Да. Неверно?
-
Да. Неверно?
-
И что ты ожидал при этом увидеть в окне edit1-контрола ? Приведи пример ..
-
Удалено модератором
|