前言:好久没有更文了,最近又再做关于导出word文档项目。其实网上很多有关导出的博文,多数是大同小异的,但是还远远不能满足我的需求。之前写过一篇导出word的文章,那个还不太成熟,随着业务的增加,肯定有了不小的变化,所以今天这篇文章索性就叫续集吧,希望可以帮到大家!
上一篇写的是有关doc格式的。具体详情请访问:点击打开链接,在这里说明一下上篇存在的一些问题:
1、记得上篇说到获取模板的时候,是通过new File("url")的形式来获取的;其实我是不推荐这种方式的,除非是你们的需求就是这样要求的;我在导出的过程中,模板(testword.ftl)是以Blob大型文件存在mysql中的,然后我可以以流的形式获取到这个模板,包括导出过程中,任意涉及到文件的输入输出的时候,尽量的都要使用流来操作;下面我贴一下代码:
我想你百度了很多导出的文章,应该大多数都是以下面这种形式获取的吧:
System.out.println("---进入createDocArea---");
this.configuration.setDirectoryForTemplateLoading(new File("/template/"));//第二种模板路径
Template t = null;
File outFile = null;
byte[] bFile = null;
try {
t = this.configuration.getTemplate(fileName,"UTF-8");
} catch (Exception e) {
e.printStackTrace();
return null;
}
outFile = new File(outFilePath);
Writer w = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(outFile);
OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
w = new BufferedWriter(osw);
} catch (Exception e) {
e.printStackTrace();
return null;
}
输入和输出都是以File的形式;这不是我想要的;我要的是,以流的形式获取,以流的形式导出,然后转换成字节存到数据库中,比如mongo;还是那句话,看你需求。
2、第二个问题就是,写导出很痛苦的,我以为最后成功的导出xxx.doc后就万事大吉了,结果有一天客户说,手机应用wps打开这