Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выгрузить массив в Excel [D6, WinXP]


Aleksik ©   (2005-10-07 22:09:00) 

Доброго времени уважаемые! Не отавайтесь безучастными, помогите советом. Надо выгрузить одномерный массив вещественных чисел в файл Excel, а я первый раз  с этим сталкиваюсь. Как это можно сделать? Понимаю, что не первый задаю этот вопрос, но пока в архиве не нашел ничего подходящего. Заранее спасибо.


vl_chel   (2005-10-10 12:09:00) [1]

Подгрузить библиотеку типов экселя  Project->Import Type Library выбрать эксель и пользоваться, получится на этапе разработки контролировать правильность вызовов. Справка по АПИ экселя в файле C:\Program Files\Microsoft Office\Office\1049\VBAXL9.CHM
учтите что сгенерируется файл ок 29000 строк см на описаеие класса TExcelApplication или около того


Palladin   (2005-10-09 22:35:00) [2]


> Вроде были еще компоненты, которые это делали

http://tiravi.narod.ru/fc.zip


YurikGL   (2005-10-09 21:39:00) [3]


> Сразу в файл - это создать эксель, но не показывать его.

Вроде были еще компоненты, которые это делали. Можно еще через ADO выгружать.


TStas   (2005-10-09 19:47:00) [4]

Посмотрите Кобра и КОМ, там есть масса примеров. Сразу в файл - это создать эксель, но не показывать его.


Palladin   (2005-10-09 16:08:00) [5]

OleVariant


Aleksik   (2005-10-09 13:22:00) [6]

to Palladin
какого типа переменная xlApp?


Aleksik   (2005-10-09 13:16:00) [7]


> Выгрузить при живом Office или самостоятельно формировать
> файл xls?

Желательно сразу сформировать файл.


Palladin   (2005-10-09 11:22:00) [8]

xlApp:=CreateOleObject('Excel.Application');
...
xlDDE:=TDDEClientConv.Create(nil);
xlDDE.SetLink('EXCEL',<имя листа>);
xlDDE.PokeData(OLEVariant(xlApp.Range[<ВерхняяЛеваяЯчека>,<НижняяПраваяЯчейка>]).Address[ReferenceStyle:=xlR1C1], pchar(buffer));
xlDDE.free;

где:
buffer:String
содержит табличные данные с разделителем полей TAB(#9) и разделителем строк CRLF(#13#10)


YurikGL   (2005-10-08 13:28:00) [9]


> Можно сделать через клипборд:

Крайне не советую т.к. у пользователя в буфере могло что-то храниться.


lookin   (2005-10-08 12:24:00) [10]

Выгрузить при живом Office или самостоятельно формировать файл xls?


Savek   (2005-10-08 09:16:00) [11]

Можно сделать через клипборд:


...
Mem.Lines.Add('Столбец1'+#9+'Столбец2'+#9+'Столбец3');
Mem.SelectAll;
Mem.CopyToClipboard;
ExcelApp.WorkBooks[1].WorkSheets[Sheet[1]].Paste;


YurikGL   (2005-10-07 22:29:00) [12]

http://delphiworld.narod.ru/base/on_waves_of_integrations3.html


Наверх

Титульная страница Поиск, карта сайта Написать письмо