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

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

В Excel [D5, D6, D7, Win95/98, Win2k]


esa ©   (2003-01-22 14:29:00) 

Каким образом записать в Excel"евскую таблицу большой массив данных (обычными метОдами медленно пишется :). Хотелось бы побыстрее.


Palladin   (2003-01-22 17:01:00) [1]

если просто текст то пойдет и так
заносишь усе в buffer
разделитель между колонками #9 (TAB) между строками #10 (LF)

var
xlDDE:TDDEClientConv;
buffer:string;
xlApp:OleVariant;
Adr1,Adr2:string;
....
xlDDE:=TDDEClientConv.Create(nil);
lDDE.SetLink("EXCEL", m_sheetname);
xlDDE.PokeData(OLEVariant(xlApp.Range[Adr1,Adr2]).Address[ReferenceStyle:=xlR1C1], pchar(buffer));
xlDDE.free;
....

очень быстро
Adr1
Adr2 описывают верхний левый и нижний правый угол прямоугольной области в которую вставляются данные
xlApp созданый как CreateOleObject("Excel.Application");


Yuri-7   (2003-01-22 15:59:00) [2]

1. Объяви переменную V: Variant;
2. Расчитай точное количество столбцов и строк и создай
V := VarArrayCreate([1, RCnt, 1, CCnt], varVariant);
3. Занеси данные в массив
4. Выполни процедуру
(R и C - адрес ячейки - "левый верхний угол", куда заносить,
ExcelApplication уже должно быть создано. ES в процедуре - это _WorkSheet, куда ты пишешь. Здесь использованы Delphi-йские сервера.)
//************************************************
procedure ex_putvalues(R,C: Integer; V: Variant);
var
I,J: Integer;
Rng: Range;
begin
I := VarArrayHighBound(V,1)-VarArrayLowBound(V,1);
J := VarArrayHighBound(V,2)-VarArrayLowBound(V,2);
Rng := ES.Get_Cells;
Rng := Rng.Range_[Rng.Item[R,C],Rng.Item[R+I,C+J]];
Rng.Value := V;
end;


Alx2   (2003-01-22 15:46:00) [3]

>esa © (22.01.03 14:29)
Шустрый и бесплатный компонент с исходниками для экспорта в excel из dataset см. на
http://www.stefancr.yucom.be


Smithson   (2003-01-22 15:42:00) [4]

Я гонял большой об`ем через клипбоард. Получалось сильно щустрее.


Alexander Vasjuk   (2003-01-22 15:39:00) [5]

Надо заполнить данными 2мерный вариантный массив и вставить его в лист.


Наверх

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