OLE Excel szybkie dodawanie danych

OLE Excel szybkie dodawanie danych
P1
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 13 lat
  • 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:prawie 17 lat
  • Ostatnio:5 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:ponad 21 lat
  • Ostatnio:prawie 13 lat
  • 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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
MA
  • Rejestracja:około 17 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Poznań
0

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

b0bik
  • Rejestracja:około 22 lata
  • Ostatnio:około miesiąc
  • Postów:1112
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.