想要输出内容到excel速度比较快,有几个窍门: 1、 在输出数据前将excel的页面刷新关闭,数据输出结束后再打开页面刷新。例如: var gExcelApp : _Application; gExcelApp.ScreenUpdating[0] := False; //输出内容。 gExcelApp.ScreenUpdating[0] := True; 2、减少excel中对象的深层次引用。比如不要多次的用 application.workbook.worksheet.range[“A1”]这个引用,可以定义一个range变量,然后赋值,以后直接访问这个变量,减少多次的对象引用可以减少系统开销。 3、定义区域一次设置一次填充。修改excel中区域的格式或者填充大片区域时可以使用数组方式一次操作,将一个区域定义成range,将需要填充的数据定义成和range行列对应的二维数组,然后直接填充,不要单个单元格一个一个的移位填充。例如: Var LDataArray :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 :=gExcelApp.Range[lCell1,lCell2]; //设置格式 larrayRange.NumberFormat:='###,###,##0.000'; //整个区域填充 larrayRange.Formula := LDataArray;
Range := ws.Range[ws.Cells[1, 1], ws.Cells[iRowCount + 1, iColCount+1]]; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论