以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于SaveToPdF 出错问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82889)

--  作者:leechang
--  发布时间:2016/3/26 22:49:00
--  关于SaveToPdF 出错问题
我的操作系统是 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
--  发布时间:2016/3/27 3:36:00
--  
会不会是Microsoft.Office.Interop.Excel.dll 版本被提升到了 15 的原因,以前好像是14
--  作者:大红袍
--  发布时间: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
--  发布时间:2016/3/27 12:17:00
--  
现象2:
把 savetopdf 换成 save
可以生成正确的excel 文件,一切都没问题


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


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

--  作者:大红袍
--  发布时间: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
--  发布时间:2016/3/30 11:07:00
--  
现在的问题是,所有安装了这个程序的电脑,都无法存为pdf文件了,难道所有安装了我的程序的电脑都要重新安装一遍office2007,这个解决方法太粗暴了吧。
--  作者:大红袍
--  发布时间:2016/3/30 11:13:00
--  

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

 

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

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