jacob-1.15-M3-64.dll运行在windows2008 64位AMD cpu 电脑上,调用office2007打开excel文件报找不到文件!

extremjoy 2011-10-29 08:35:34
jacob版本:jacob-1.15-M3-x64.dll
硬件环境:64位4 AMD tl CPU。
操作系统:windows server 2008。
COM:office2007。
环境:tomcat6.0
错误描述:
com.jacob.com.ComFailException: Invoke of: Open
Source: Microsoft Excel
Description: Microsoft Excel 不能访问文件“D:\1.xls”。 可能的原因有以下几个:

? 文件名称或路径不存在。
? 文件正被其他程序使用。
? 您正要保存的工作簿与当前打开的工作簿同名。

调用源码:
public static void excelToHtml(String xlsfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Excel.Application");
try
{
app.setProperty("Visible", new Variant(false));
Dispatch excels = app.getProperty("Workbooks").toDispatch();
System.out.println("Dispatch excels = ");
Dispatch excel = Dispatch.invoke(
excels,
"Open",
Dispatch.Method,
new Object[] { xlsfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
System.out.println("Dispatch excels = Open");
Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {
htmlfile, new Variant(EXCEL_HTML) }, new int[1]);
System.out.println("Dispatch excels = SaveAs");
Variant f = new Variant(false);
Dispatch.call(excel, "Close", f);
System.out.println("convert to html success");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
app.invoke("Quit", new Variant[] {});
ComThread.Release();
}
}

出错行:程序运行到Open的时候抛出异常。
Dispatch excel = Dispatch.invoke(
excels,
"Open",
Dispatch.Method,
new Object[] { xlsfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();

文件路径绝对准确,在调用前用了new File(excel).exists()判断文件是不是存在。
而且直接从我的电脑中是能够打开文件的。
现在头绪很乱,换了2个jacob都是同样的现象。
jacob.jar已经放入tomcat的lib。jacob-1.15-M3-x64.dll已经放入tomcat的bin。
不知道问题出在什么地方,哪位大侠能够给个思路!
PS:发现一个奇怪的现象,换了2个jacob,页面重新用新的jacob.jar重新编译过。但是每次调用都提示需要jacob-1.15-M3-x64.dll,这里不知道是什么原因。换jacob的时候没有重新启动系统。
...全文
487 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangxun840130 2012-07-12
  • 打赏
  • 举报
回复
jacob到底支不支持windows server2008 R2呢?~~
xiangxun840130 2012-07-12
  • 打赏
  • 举报
回复
一样的问题!希望高手能指教啊!~~
extremjoy 2011-11-08
  • 打赏
  • 举报
回复
没有解决啊,最后幸好找到一个windows server2003的虚拟机,只能跑在虚拟机上面了。
缘梦王子 2011-10-31
  • 打赏
  • 举报
回复
不知道你解决了没 我也遇到 在open 的时候就有问题了 不知道是怎么回事 也没有报什么错误提示!
extremjoy 2011-10-30
  • 打赏
  • 举报
回复
顶上去
extremjoy 2011-10-29
  • 打赏
  • 举报
回复
杯具啊,顶下,有没有大侠冒个泡呢!
keketian521 2011-10-29
  • 打赏
  • 举报
回复
帮顶啊 !!!!!
「已注销」 2011-10-29
  • 打赏
  • 举报
回复
太专业了 帮顶 学习~~~

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧