提示:这里简述项目相关背景:
利用word模板导出word文档
问题描述
解析docx模板并获取Document对象时,documet对象为null.
//利用file对象打开word模板
File f=new File("C:\Users\29595\Desktop\testReport_template2.docx");
InputStream fr=new FileInputStream(f);
//解析docx模板并获取Document对象
XWPFDocument document = new XWPFDocument(fr)
# 解决方案:
查看模板对象是否获取
> 解决方法一:System.out.println(fr.available());如果输出一串数字,是读取的模板的字节数,表明模板对象已经获取(不用怀疑了,只要输出数字就一定读取到了,模板路径也是存在)
如果模板没有获取,查看自己的路径中是否存在模板
>如果路径正确,但是没有获取到模板,将模板.doc改为.docx
确定模板对象获取到了, 但是在执行这个语句时 XWPFDocument document = new XWPFDocument(fr); document对象为null
>原因poi jar包冲突
>解决:将以下代码粘贴上去运行 根据输出的路径找jar包,如果里面有两个jar包,将输出的jar 包删除
ClassLoader classloader =org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL res = classloader.getResource( "org/apache/poi/poifs/filesystem/POIFSFileSystem.class");
String path = res.getPath();
System.out.println("poi的jar包的路径 " + path);
## 总结:
之前一直以为是模板路径的问题,疯狂找原因,怎么也没想到是jar包的原因,这个错误真的是让我找了四五天,希望对你们有帮助



