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


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

主题:关于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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/27 11:19:00 [只看该作者]

1、

 

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

 

2、如果1无法修复,就重新安装一下wps。


 回到顶部
帅哥哟,离线,有人找我吗?
leechang
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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文件,这里失败了。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/27 12:49:00 [只看该作者]

1、saveToPdf的话,需要Office2007以上的支持;而且2007还需要安装一个插件 https://www.microsoft.com/zh-cn/download/details.aspx?id=7

 

2、重新安装一下MS Office;如果你还装有wps,也重新安装一次。


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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 11:13:00 [只看该作者]

我测试没问题,和foxtable的升级无关。

 

Dim Book As New XLS.Book("d:\test.xls")
Book.SaveToPDF("d:\123.pdf") '保存为PDF文件

肯定是你的系统对MS Office做过了修改,如果是大范围的,肯定是你公司近期对电脑做了修改,比如安装卸载了一些东西。


 回到顶部