如何使用poi调用并生成word

自己百度了很多内容,但是在eclipse中使用poi一直报错,无法实现使用poi调用并导出word的功能。

很明显是没有找到jacob,你的部署有问题

另外
String htmlfile = "D;/"; 这里D:不是分号

贴出你的错误和代码。报错可能是简单的权限问题或者细节的问题。

 package com.doc.test;
import java.util.Map;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

import freemarker.template.Configuration;

public class XmlToWord {
    private Configuration configuration = null;
    public XmlToWord(){
        configuration = new Configuration();
        configuration.setDefaultEncoding("utf-8");
    }
    public void xmlToWord(String docfile, String htmlfile){
        ActiveXComponent app =null;
        try {
        app=new ActiveXComponent("Word.Application"); //启动word
        app.setProperty("Visible", new Variant(false));
        Dispatch docs = app.getProperty("Documents").toDispatch();
        Dispatch doc = Dispatch.invoke(
        docs,
        "Open",
        Dispatch.Method,
        new Object[] { docfile, new Variant(false),
        new Variant(true) }, new int[1]).toDispatch();
        Dispatch selection=app.getProperty("Selection").toDispatch();
        Dispatch find = Dispatch.call(selection,"Find").toDispatch();
        Dispatch.put(find,"Text","目录");
        Dispatch.put(find,"Forward","True");
        Dispatch.put(find,"Format","True");
        Dispatch.put(find,"MatchCase","True");
        Dispatch.put(find,"MatchWholeWord","True");
        Dispatch.call(find,"Execute").getBoolean();
        Dispatch ActiveDocument = app.getProperty("ActiveDocument").toDispatch();
        Dispatch TablesOfContents = Dispatch.get(ActiveDocument,"TablesOfContents").toDispatch();
        Dispatch.call(selection,"MoveRight"); //移动光标到右边
        Dispatch.call(selection, "TypeParagraph"); //换行
        Dispatch range = Dispatch.get(selection, "Range").toDispatch();
        Dispatch.call(TablesOfContents,"Add",range,new Variant(true),new Variant(1),new Variant(3),new Variant(true),new Variant(""),new Variant(true),new Variant(true));
        Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
        htmlfile, new Variant(1) }, new int[1]);
        Variant f = new Variant(false);
        Dispatch.call(doc, "Close", f);
        } catch(Exception e){

        } 
        finally{
            if(app!=null)
            app.invoke("Quit", new Variant[] {});
        }
    }
}

package com.doc.test;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

public class a {
    /**
     * @param args
     * @throws UnsupportedEncodingException 
     */
    public static void main(String[] args) throws UnsupportedEncodingException {

        Map<String, Object> dataMap = new HashMap<String, Object>();
        dataMap.put("command", "苏");
        XmlToWordTest  mdoc = new XmlToWordTest();
        XmlToWord adc = new XmlToWord();
        String docfile = "E:/outFile.doc";
        String htmlfile = "D;/";
        adc.xmlToWord(docfile,htmlfile);
        mdoc.createDoc(dataMap, "E:/outFile.doc");
        System.out.println(System.getProperty("java.library.path"));
    }



}

然后显示报错
图片说明

jacob system32
要 拷贝到system下面