以文本方式查看主题

-  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=93769)

--  作者:xietan417
--  发布时间:2016/12/6 16:43:00
--  批量生成EXCEL报表报错!是什么原因?
Dim nams As List(Of String)
nams = DataTables("cw1").GetValues("领料部门") \'取进度表里不重复的部门名称

Dim App As New MSExcel.Application \'定义EXCEL为对像\'
Dim bname As String = "c:\\data\\总报表.xls"
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Add  \'创建EXCEL工作薄\'
Wb.WorkSheets(3).delete \'删除sheet3\'
Wb.WorkSheets(2).delete \'删除sheet2
Dim ws As MSExcel.WorkSheet = Wb.WorkSheets(1) \'定义工作表sheet1
For Each nam As String In nams \'历遍所有的部门名称
    If nam <> "" Then \'----如果部门名称不等于空
        Dim Book As New XLS.Book (ProjectPath & "Attachments\\内部厂.xls")\'定义一个Excel工作簿\'
        Dim sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
        Tables("cw1").filter = "领料部门 = \'" & nam & "\'" \'根据领料部门名称进行筛选\'
        Book.Build() \'建立工作薄\'
        Dim fl As String = "c:\\data\\"& nam &".xls" 
        Book.Save(fl) \'保存工作簿
        
        Dim Wb_temp As MSExcel.WorkBook = App.WorkBooks.Open(fl)
        Dim Ws_temp As MSExcel.WorkSheet = wb_temp.WorkSheets(1)
        Ws_temp.name = nam
        Ws_temp.Copy(System.Reflection.Missing.Value, ws)
        wb_temp.close(False, System.Reflection.Missing.Value, System.Reflection.Missing.Value)
    End If
Next
ws.delete
Wb.saveas(bname)
App.Quit



.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,送货明细导出,Button2,Click
详细错误信息:
服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))



--  作者:有点色
--  发布时间:2016/12/6 17:01:00
--  

 我测试没问题,只是提示是否覆盖掉原来的xls文件。

 

 如果不想弹出提示,加上代码 app.DisplayAlerts = False


--  作者:xietan417
--  发布时间:2016/12/6 17:08:00
--  
奇怪了!我之前也是没有问题的!难到是EXCEL的问题?我再测试测试吧!