自己百度了很多内容,但是在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下面