![]() |
AW: Laufzeit Excelzugriff extrem langsam
Du überträgst Zelle für Zelle die Daten per Ole nach Excel. Das ist besonders langsam.
Besser wäre es, die Daten zunächst in eine Variantes Array zu schreiben. Dann mittels Range einen Zellbereich in Excel definieren und das Array mittels range.value auf einmal nach Excel zu übertragen. Dies spart erheblich Zeit. Natürlich muss der Zellbereich in Excel zusammenhängend sein, was aber bei dir scheinbar der Fall ist. Gruß Kompi |
AW: Laufzeit Excelzugriff extrem langsam
Zitat:
|
AW: Laufzeit Excelzugriff extrem langsam
Du meinst sowas?
Delphi-Quellcode:
uses
System.Win.ComObj, System.Variants; procedure ExportToExcel; var ExcelApp, Workbook, Worksheet: Variant; DataArray: Variant; i, j, Rows, Cols: Integer; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelApp.Visible := True; // oder eben False wegen der Geschwindigkeit, aber in dem Beispiel soll man das Ergebnis in Excel sehen Workbook := ExcelApp.Workbooks.Add; Worksheet := Workbook.Worksheets[1]; // Beispieldaten Rows := 100; Cols := 5; DataArray := VarArrayCreate([1, Rows, 1, Cols], varVariant); for i := 1 to Rows do for j := 1 to Cols do DataArray[i, j] := 'Wert ' + IntToStr(i) + ',' + IntToStr(j); Worksheet.Range[Worksheet.Cells[1, 1], Worksheet.Cells[Rows, Cols]].Value := DataArray; // hier nur zur Anzeige im Besipiel Worksheet.Columns.AutoFit; end; |
AW: Laufzeit Excelzugriff extrem langsam
Genau so wie Sebastian es vorgeschlagen hat.
Das ist erheblich schneller als Zelle für Zelle zu beschreiben. Gruß Kompi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz