OLE Excel szybkie dodawanie danych

0

Witam.

Mam problem potrzebuje "szybko" tzn. na ile to możliwe przenieść dużą ilość danych z pamięci tablica Variant-ów do excela
na razie wszystko zapisuje do jednej zakładki ale ilość danych to 80x500000 (col/row)

prubowałem to już wpisywać używając :

za pomocą wklejenia Range uprzednio uzupełnionej tablicy wariantów w pętli

while 
begin
  Data[rowa + 1, cola + 1] := dane;
end;

 lSheet.Range['A1','BQ'+IntToStr(maxRows)].Value := Data; 

oraz pojedyńczo po rekordzie w pętli

 lsheet.Cells[rec,col+1].Value:= dane 

czy zna ktoś szybsze i bardziej efektywne metody lub ma pomysł jak te zmienić

0

Kiedyś robiłem to przy użyciu schowka systemowego, ale w drugą stronę, czyli z Excela do ListView,
tzn. programowo zaznaczałem w skoroszycie zakres komórek, kopiowałem do schowka, potem ze schowka
wczytywałem do StringListy, a nastepnie po uwzględnieniu isniejących tabulatorów w każdym wierszu
wstawiałem do ListView. Analogicznie zapewne można w przeciwną stronę.

Pzdr.
Marogo

0

możesz jeszcze przez ADO ale czy będzie szybsze nie mam pojęcia. Info jak masz tu http://delphi.about.com/od/database/l/aa090903a.htm

0

A gdyby zapisać jako CSV ? Bez bawienia się w automatyzację.

0

Może faktycznie spróbuj przez schowek. Zrób sobie z danych zlepkę rozdzielaną tabulatorami.

Co do przyśpieszenia - zakładam że Excel jest niewidoczny jak to tam wysyłasz ? Jeśli nie to go ukryj.

Kiedyś robiłem duże dokumenty (kilkaset stron wydruku) w ten sposób, i coś mi świta że jest jakaś properta blokująca malowanie / wyświetlanie na czas operacji - ale nie pamiętam nazwy.

Albo faktycznie przez CSV'ke.

b

1 użytkowników online, w tym zalogowanych: 0, gości: 1