Y
younghat
Unregistered / Unconfirmed
GUEST, unregistred user!
小弟我做了一个基于Excel的柔性报表解决方案,在实用过程中发现性能上存在问题(A3幅面的报表平均1秒种才生成一页),经调试分析发现性能瓶颈在于Excel的Rang.Copy函数。
......
while not qry.Eof do
begin
ExcelFile.WorkSheets[1].Range[SrcRange].Copy(ExcelFile.WorkSheets[2].Cells[p.r,p.c]);
//注:上面一行代码实际上占用了90%的执行时间,为性能瓶颈。
for b:=0 to length(BandCells)-1 do
begin
......
//写数据库内容到Cells中,此处花费的时间仅为10%。
end;
不知有什么办法能够改善Range.Copy的性能,
或者有什么变通的办法,从而绕开Range.Copy函数。
请各位不吝赐教,重金酬谢!
......
while not qry.Eof do
begin
ExcelFile.WorkSheets[1].Range[SrcRange].Copy(ExcelFile.WorkSheets[2].Cells[p.r,p.c]);
//注:上面一行代码实际上占用了90%的执行时间,为性能瓶颈。
for b:=0 to length(BandCells)-1 do
begin
......
//写数据库内容到Cells中,此处花费的时间仅为10%。
end;
不知有什么办法能够改善Range.Copy的性能,
或者有什么变通的办法,从而绕开Range.Copy函数。
请各位不吝赐教,重金酬谢!