Foxtable(狐表)用户栏目专家坐堂 → excel报表导出错误


  共有1822人关注过本帖树形打印复制链接

主题:excel报表导出错误

帅哥哟,离线,有人找我吗?
xvkewen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
excel报表导出错误  发帖心情 Post By:2018/4/19 17:22:00 [只看该作者]

我在导出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



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/19 18:20:00 [只看该作者]


 回到顶部