• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi批量输出内容到Excel的注意事项

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

想要输出内容到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]];
      Range.Value := Data;
      Range.Columns.AutoFit;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
多普勒失真信号采样Matlab模拟分析发布时间:2022-07-18
下一篇:
matlab练习程序(白平衡 灰度世界算法 )发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap