以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- excel模板导出数据多,程序闪退 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192389) |
-- 作者:hellfirellb -- 发布时间:2024/6/20 16:07:00 -- excel模板导出数据多,程序闪退 book.AddDataTable("客户对账",sqlstr) book.AddDataTable("客户对账明细",dt) book.AddRelation("客户对账","对账编号","客户对账明细","对账编号") Book.Build() 明细表大概2千多条数据,生成过程中程序闪退,是数据量多的问题么?有什么解决办法么? |
-- 作者:有点蓝 -- 发布时间:2024/6/20 16:19:00 -- 2千多条不算多,一般闪退是出现了死循环 |
-- 作者:hellfirellb -- 发布时间:2024/6/20 16:32:00 -- 我觉得也不应该,但我是用模板导出,数据都加载了,就是build过程闪退,就是上面的主要代码,怎么会死循环呢 |
-- 作者:有点蓝 -- 发布时间:2024/6/20 16:34:00 -- 完整代码发上来看看 |
-- 作者:hellfirellb -- 发布时间:2024/6/20 16:49:00 -- Dim dt As DataTable dt = ExecSQLGetDataTable(sql1,"V16Data") \'MessageBox.show(dt.DataRows.Count) Dim Book As New XLS.Book(fp) Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 dlg.FileName=tr("客户简称") & tr("对账年份") & tr("对账月份") & "对账表.xlsx" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim fl As String = dlg.FileName book.AddDataTable("客户对账","V16Data",sqlstr) book.AddDataTable("客户对账明细",dt) book.AddRelation("客户对账","对账编号","客户对账明细","对账编号") \'建立关联 \'MessageBox.show("start build") Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 \'MessageBox.Show("end") Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() End If 测试了800多条数据正常,很奇怪(有sql语句的地方发不出来,改成变量了)。
|
-- 作者:有点蓝 -- 发布时间:2024/6/20 17:14:00 -- 这样试试 Dim Book As New XLS.Book(fp) Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 dlg.FileName=tr("客户简称") & tr("对账年份") & tr("对账月份") & "对账表.xlsx" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim fl As String = dlg.FileName book.AddDataTable("客户对账","V16Data",sqlstr) book.AddDataTable("客户对账明细","V16Data",sql1) book.AddRelation("客户对账","对账编号","客户对账明细","对账编号") \'建立关联 \'MessageBox.show("start build") Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 \'MessageBox.Show("end") Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() End If |
-- 作者:hellfirellb -- 发布时间:2024/6/23 19:21:00 -- 蓝老大,按你那个代码不行,其实原来就是你这种写法,不行才换的,还是闪退。还麻烦您看一下怎么解决比较好 |
-- 作者:hellfirellb -- 发布时间:2024/6/23 20:16:00 -- 解决了,蓝老大,客户做的模板下面有多余的行,有异常。晕死 |