以文本方式查看主题

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

--  作者:xvkewen
--  发布时间:2018/4/19 17:22:00
--  excel报表导出错误
我在导出EXCEL报表的时候程序出现以下错误提示,是什么原因;在其他电脑导出没有问题;


此主题相关图片如下:sdf.png
按此在新窗口浏览图片

我的导出代码如下:

Dim CurRow As Row  = Tables("MainSchedule").Current          \'获取当前排期行;

Dim StyleStr As String = CurRow("StyleNo")

Dim rl As String = _userroles        \'获取当前登录用户角色

Dim Book As New XLS.Book()

Dim filepath As String  \'定义报表输出路径;

Dim styleToNarrow() As String = StyleStr.Split("*")

Dim bw As String = vars("ProcessPartName")   \'获取已经点选的样办部位;

If styleToNarrow.Length > 1 Then

    styleStr = styleToNarrow(1)  \'只获取SAP款号

End If

 

If rl.Contains("配料") Or rl.Contains("系统管理员") Then   \'根据不同的用户角色选择不同的工序模版;

    If bw.Contains("大货") Then

        Book = New XLS.Book(ProjectPath & "Attachments\\胸围大货工艺书(配料中心).xls") \'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板

    Else

        Book = New XLS.Book(ProjectPath & "Attachments\\胸围工艺书(配料中心).xls") \'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板

    End If

Else         \'除配料员与系统管理员外,其他用户的报表打印格式;

    If bw.Contains("大货") Then  \'如果样办的部件名称包含"大货"字样,则调用大货胸围工艺书模版;

        Book = New XLS.Book(ProjectPath & "Attachments\\胸围工艺书(" & vars("ProcessPartName") & ").xls") \'打开模板

    Else

        Book = New XLS.Book(ProjectPath & "Attachments\\胸围工艺书(QA).xls") \'\'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板

       

    End If

End If

 

\'开始调用已经打印的胸围工艺书模版设置数据导出条件 ,并生成报表;

 

Dim Sheet As XLS.Sheet = Book.Sheets(0)

If vars("ProcessPartName") <> "" Then      \'对已经打开运动围工艺书模板设置导出的筛选条件;

    If rl.Contains("配料") Or rl.Contains("系统管理员") Then

        If bw.Contains("大货") Then

            Sheet(11,19).Value = "< bulkPart = \'" & vars("ProcessPartName") & "\'>"

        Else

            Sheet(11,19).Value = "< SamplePart = \'" & vars("ProcessPartName") & "\'>"

        End If

    Else

        If bw.Contains("大货") Then

            Sheet(7,15).Value = "< bulkPart = \'" & vars("ProcessPartName") & "\'>"

        Else

            Sheet(7,18).Value = "< SamplePart = \'" & vars("ProcessPartName") & "\'>"

        End If

    End If

Else

    If rl.Contains("配料") Or rl.Contains("系统管理员") Then

        Sheet(11,19).Value = ""

    Else

        Sheet(7,18).Value = ""

    End If

End If

 

 

\'针对是否为PP办设置不同的输出文件名;

If bw.Contains("大货") Then

    filepath  = "D:\\reports\\" & StyleStr & "(" & vars("ProcessPartName") & ")胸围工艺书.xls"

Else

    filepath  = "D:\\reports\\" & CurRow("SrsNO") & "(" & vars("ProcessPartName") & ")胸围工艺书.xls"

End If

Book.Build() \'生成细节区

Book.Save(filepath)\'保存工作簿

\'以下代码用于设置自动换行及调整行高(对合并单元格无效)

Dim App As New MSExcel.Application

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(filepath)

Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

Dim Rg As MSExcel.Range = Ws.Cells

Rg.WrapText = True

Rg.EntireRow.AutoFit  \'自动调整行高

wb.saved = True

App.DisplayAlerts = False

App.Visible = True

If rl.Contains("配料") Then  \' Or rl.Contains("系统管理员")

    Ws.PrintOut(Preview:=False,ActivePrinter:="doPDF v7")    \'直接打印;

Else

    Return

End If

App.Quit



--  作者:有点甜
--  发布时间:2018/4/19 18:20:00
--  

参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54396&replyID=360697&skin=1