以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于SaveToPdF 出错问题 (http://foxtable.net/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") 肯定是你的系统对MS Office做过了修改,如果是大范围的,肯定是你公司近期对电脑做了修改,比如安装卸载了一些东西。 |