|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi | Взаимодействие с Excel (via TExcelApplication) |
|
Delphi - Delphi | Взаимодействие с Excel (via TExcelApplication)
|
Старожил Сообщения: 362 |
Профиль | Отправить PM | Цитировать Унизительная ПРосьба.
Наишите мне пожалуйста полный, рабочий код выгрузки данных в Excel. Постенький пример с подробным описанием пожалуйста, Так сказать для Идиотов. Допустим передать значение из Edit1.text в ячеку листа Excel. Дальше я сам думаю разобраться... А то из всех нарытых мною примеров кода у меня ничего неполучилось, даже запустить приложение Excel. info: 1.Delphi 5 2.Есть компонент TExcelApplication на закладке Servis, правда при его использовании он в Uses прописывается как Excel97 а у меня на компе установлен Ex2000. 3.Установлен он НЕ в дирректорию по-умлчанию, если это имеет значение при вызове приложения? |
|
------- Отправлено: 12:11, 19-08-2005 |
Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
unit < .. >; interface uses < ... все стандартные ... >, OleServer, Excel97; type TForm1 = class(TForm) ExcelApp: TExcelApplication; ExcelWB: TExcelWorkbook; ExcelWS: TExcelWorksheet; Edit1: TEdit; < .. > procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); < .. > private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var lcid: Integer = 0; procedure TForm1.FormCreate(Sender: TObject); begin // Подключаемся ExcelApp.ConnectKind := ckRunningOrNew; ExcelApp.Connect; ExcelApp.Visible[lcid] := True; ExcelApp.Workbooks.Add(EmptyParam, lcid); ExcelWB.ConnectTo(ExcelApp.ActiveWorkbook); ExcelWS.ConnectTo(ExcelWB.Worksheets[1] as _Worksheet); end; procedure TForm1.FormShow(Sender: TObject); begin // Выкладываем значения в ячейки ExcelWS.Cells.Item[1 { = строка }, 1 { = столбец }] := 'Привет!'; ExcelWS.Cells.Item[2, 5] := 'Ячейка E2'; ExcelWS.Cells.Item[2, 6] := Edit1.Text; end; procedure TForm1.FormDestroy(Sender: TObject); begin // Закрываемся и уходим ExcelWS.Disconnect; ExcelWB.Close(0 { = не сохранять изменения}); ExcelApp.UserControl := True; ExcelApp.Quit; end; end. |
|
Отправлено: 13:57, 19-08-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 362
|
Профиль | Отправить PM | Цитировать Большое спасибо Все отработало..
С твоего позволения выложу Код в более привычном виде, для тех, которые учатся писать по учебникам, как я. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Excel97, OleServer; type TForm1 = class(TForm) Edit1: TEdit; ExcelApplication1: TExcelApplication; ExcelOLEObject1: TExcelOLEObject; ExcelWorkbook1: TExcelWorkbook; ExcelWorksheet1: TExcelWorksheet; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin // подключение Form1.ExcelApplication1.ConnectKind := ckRunningOrNew; FOrm1.ExcelApplication1.Connect; Form1.ExcelApplication1.Visible[1] := True; { здесь и далее должен быть параметр lcid назначение которого я не понял, но от балды поставил знаечение = 1, чтоб скомпилилось} FOrm1.ExcelApplication1.Workbooks.Add (EmptyParam,1); Form1.ExcelWorkbook1.ConnectTo (Form1.ExcelApplication1.ActiveWorkbook ); Form1.ExcelWorksheet1.ConnectTo (Form1.ExcelWorkbook1.Worksheets [1] as _WorkSheet); //выгрузка Form1.ExcelWorksheet1.Cells.Item [1,1]:='ПРивет'; Form1.ExcelWorksheet1.Cells.Item [2,5]:='Ячейка E2'; FOrm1.ExcelWorksheet1.Cells.Item [2,6]:= Form1.Edit1.Text; end; procedure TForm1.Button2Click(Sender: TObject); begin // выход Form1.ExcelWorksheet1.Disconnect; Form1.ExcelWorkbook1.Close (0); Form1.ExcelApplication1.UserControl := true; Form1.Close; end; end. |
------- Отправлено: 17:54, 19-08-2005 | #3 |
Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать lcid - это идентификатор языка, для русского 1049
|
Отправлено: 21:48, 19-08-2005 | #4 |
Старожил Сообщения: 362
|
Профиль | Отправить PM | Цитировать Еще Раз Спасибо!
|
|
------- Отправлено: 00:03, 20-08-2005 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Взаимодействие видеокарты и процессора | ant_y | Хочу все знать | 3 | 23-11-2009 19:35 | |
Взаимодействие с главным потоком | Boris7779 | Программирование в *nix | 0 | 31-08-2009 14:53 | |
[решено] Взаимодействие с MySQL | morgan1991 | AutoIt | 19 | 22-06-2009 19:29 | |
Delphi - MsOffice | Delphi | Работа с Excel в Делфи | AL CAPONE | Программирование и базы данных | 2 | 03-10-2006 16:27 | |
Delphi - Как в Delphi узнать, запущен ли Word или Excel | Kroc | Программирование и базы данных | 5 | 27-10-2004 00:26 |
|