我是开始学习java的,从网上找了一个关于jacob的程序,程序如下:
import com.jacob.com.*;
import com.jacob.activeX.*;public class Dispatch_MSExcel {

/**
 * 打开excel文件在第一行写入:123.456,在第二行写入一个方程式:A2=A1*2
 * 然后关闭excel
 */
public void OpenExcelAndWriteData(){
ActiveXComponent xl=new ActiveXComponent("Excel.Application");

try{
xl.setProperty("Visible",new Variant(true));
Object workbooks=xl.getProperty("Workbooks").toDispatch();
Object workbook=Dispatch.get(workbooks,"Add").toDispatch();
Object sheet=Dispatch.get(workbook,"ActiveSheet").toDispatch();
Object a1=Dispatch.invoke(sheet,"Range",Dispatch.Get,new Object[]{"A1"},new int[1]).toDispatch();
Object a2=Dispatch.invoke(sheet,"Range",Dispatch.Get,new Object[]{"A2"},new int[1]).toDispatch();
Dispatch.put(a1,"Value","123.456");
Dispatch.put(a2,"Formula","=A1*2");
Variant f=new Variant(false);
Dispatch.call(workbook,"Close",f);
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
xl.invoke("Quit",new Variant[]{});
}
}

public static void main(String[] argv){
Dispatch_MSExcel d=new Dispatch_MSExcel();
d.OpenExcelAndWriteData();
}
}
编译通过,执行时出现下列错误提示:
com.jacob.com.ComFailException:A COM Exception has been encountered:
At Invoke of: Workbooks
Description:An unknown COM error has occured
at com.jacob.com.Dispatch.invokev<Native Method>
at com.jacob.activeX.ActiveXComponent.getProperty<ActiveXComponent.java>
at Dispatch_MSExcel.OpenExcelAndWriteDate<Dispatch_MSExcel.java:22>
at Dispatch_MSExcel.main<Dispatch_MSExcel.java:42>
Excetpion in thread  "main"com.jacob.com.ComFailException:A COM Exception has been encountered:  
At Invoke of: Quit
Description:An unknown COM error has occured
at com.jacob.com.Dispatch.invokev<Native Method>
at com.jacob.activeX.ActiveXComponent.invoke<ActiveXComponent.java>
at Dispatch_MSExcel.OpenExcelAndWriteDate<Dispatch_MSExcel.java:36>
at Dispatch_MSExcel.main<Dispatch_MSExcel.java:42>
因为我是初学,实在不知道是什么原因造成这样的错误,还请各位高手帮忙看看

解决方案 »

  1.   

    你还是先看jacob自带的Samples,然后再进行扩展定制自己的功能
      

  2.   

    就是用自带的例子,也是这样的错误提示啊。我在一个论坛上看到别人做的是将Word转换为pdf,也是类似的问题,说是要装.net 2003.我看的不是很明白。
      

  3.   

    呵呵,这个问题可能是你使用的jacob.dll文件没有被许可,或系统找不到的原因,你先把jacob.dll放在windows/system32下面试试,如果不行,我给你一个jacob试一下,应该可以解决的,我现在也在学这个东东,也有点问题,借你这向高手问一下:
    我用jacob读word文件,由于文件中有韩语,所以对韩语的查找替换不能正常进行。我在数据库中输入了韩语,然后读到java中就变成了?请教高手怎么解决?
      

  4.   

    这个文件我是放在windows/system32下了,没放到下面时,执行的错误好象是找不到jacob,可是我在网上看到的说把jacob.dll放到system32下时,还要注册一下,可是我当时注册时好象提示是有错误,所以注册失败。为什么jacob.dll会没有被许可呢。把你的给我一份好吗?万分感谢!