Delphi批量輸出內容到Excel的注意事項

2022-08-05 13:39:19 字數 1112 閱讀 8346

想要輸出內容到excel速度比較快,有幾個竅門:

1、在輸出資料前將excel的頁面重新整理關閉,資料輸出結束後再開啟頁面重新整理。例如:

var//輸出內容。

2、減少excel中物件的深層次引用。比如不要多次的用

3、定義區域一次設定一次填充。修改excel中區域的格式或者填充大片區域時可以使用陣列方式一次操作,將一個區域定義成range,將需要填充的資料定義成和range行列對應的二維陣列,然後直接填充,不要單個單元格一個一個的移位填充。例如:

varldataarray :variant;

lcell1,lcell2,larrayrange :excelrange;

//定義二維陣列

ldataarray := vararraycreate([0, lrow, 0, lcol-1], varvariant);

//填充二維陣列資料

for i :=0 to lrow do

for j :=0 to lcol-1 do

ldataarray[i,j] := adata.data[i][j+1];

//定義區域

lcell1 := adata.topointrange.offset[0,1];

lcell2 := adata.topointrange.offset[lrow,lcol];

//設定格式

larrayrange.numberformat:='###,###,##0.000';

//整個區域填充

larrayrange.formula := ldataarray;

range := ws.range[ws.cells[1, 1],  ws.cells[irowcount + 1, icolcount+1]];

range.value := data;

range.columns.autofit;