谢谢指点。
刚才试了一下,还是不行。
问题是不是出在Book.Build() 生成细节区上?代码:
Dim cnt As Integer = 100 '每次打印的行数
For i As Integer = 0 To Tables("订单").Rows.count -1 Step cnt
Dim ed As Integer = math.min(i + cnt - 1, Tables("订单").Rows.count -1)
Tables("订单").Select(i,0,ed,0) '选定本次打印的100行
Dim Book As New XLS.Book(ProjectPath & "Attachments\模版.xls") '开始基于模版打印
Dim fl As String = ProjectPath & "Reports\模版.xls"
Book.Build() '生成细节--->这里生成细节区所对应的数据表任然是含有3000条记录的大表,所以输出时总是显示爆内存。如果只是针对选定100条记录的小表生成细节区,是不是应该没有问题?能不能考虑动态修改打印条件,每次按顺序生成100条记录的细节区,输出,保存,最后再将全部输出的EXCEL报表合并成一个报表?请指点。先谢谢了。
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
proc.WaitForExit '等到关闭本次生成的excel报表文件才打印下一个100行
Next