OLE Excel szybkie dodawanie danych

OLE Excel szybkie dodawanie danych
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
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

Kopiuj
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

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

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

MA
  • Rejestracja: dni
  • Ostatnio: dni
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

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
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

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
0

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

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.