Foxtable(狐表)用户栏目专家坐堂 → 关于SaveToPdF 出错问题


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

主题:关于SaveToPdF 出错问题

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


加好友 发短信
等级:婴狐 帖子:18 积分:333 威望:0 精华:0 注册:2012/11/25 18:24:00
关于SaveToPdF 出错问题  发帖心情 Post By:2016/3/26 22:49:00 [显示全部帖子]

我的操作系统是 win7 SP1
office 是 2007

saveToPdf 函数工作一直良好

最后这次版本升级之后
突然 之前的 代码中的
Savetopdf 开始报错如下:

无法将类型 Microsoft.Office.Interop.Excel.AplicationClass 的 COM对象
强制转化为接口类型 Microsoft.Office.Interop.Excel.Application

请指教,我现在该怎么处理这个问题。代码如下:
 Dim templet As String
        Dim report As String
        
        Dim name As String
        name = "Reports\出库单-" & r("编号") & ".pdf"
        
        templet = ProjectPath & "Attachments\出库单模板.xls"
        
        report = ProjectPath & name  

        Dim Book As New XLS.Book(templet) '打开模板
        
        Dim fl As String = report
        
        'Dim Sheet As XLS.Sheet = Book.Sheets(0)
  
        Book.Build() '生成报表
        Book.SaveToPDF(fl) 
      

       
       
        Dim Proc As New Process 
        Proc.File = fl
        Proc.Start()


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


加好友 发短信
等级:婴狐 帖子:18 积分:333 威望:0 精华:0 注册:2012/11/25 18:24:00
  发帖心情 Post By:2016/3/27 3:36:00 [显示全部帖子]

会不会是Microsoft.Office.Interop.Excel.dll 版本被提升到了 15 的原因,以前好像是14

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


加好友 发短信
等级:婴狐 帖子:18 积分:333 威望:0 精华:0 注册:2012/11/25 18:24:00
  发帖心情 Post By:2016/3/27 12:17:00 [显示全部帖子]

现象2:
把 savetopdf 换成 save
可以生成正确的excel 文件,一切都没问题


当 savetopdf 出错,退出的时候,reports 目录下,也能生成正确的excel 临时文件,内容是完全正确的。


所以我猜测,savetopdf 实际上分为两步实现,第一 生成一个临时的excel 文件 这一步实际上是成功了 第二 把生成的临时 excel文件 转化为或者另存为pdf文件,这里失败了。

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


加好友 发短信
等级:婴狐 帖子:18 积分:333 威望:0 精华:0 注册:2012/11/25 18:24:00
  发帖心情 Post By:2016/3/30 11:07:00 [显示全部帖子]

现在的问题是,所有安装了这个程序的电脑,都无法存为pdf文件了,难道所有安装了我的程序的电脑都要重新安装一遍office2007,这个解决方法太粗暴了吧。

 回到顶部