在进行项目中,有一个任务需求是根据从模板提取的html代码生成页面,然后将页面导入成word,由于是根据模板生成的 所以无法就是说利用后台代码 用poi“画出来”,我参考了 很多大神给的思路,这里给一个我自己的小想法吧,首先因为动态生成,所以传递给后台的值不能是url(url传的是静态页面),所以给后台传送整个页面的html 再后台进行处理,这里我给一下我自己代码部分
try {
if(htmls != null){
byte b[] = htmls.getBytes("utf-8"); //这里是必须要设置编码的,不然导出中文就会乱码。
ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中
POIFSFileSystem poifs = new POIFSFileSystem();
DirectoryEntry directory = poifs.getRoot();
DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
//输出文件
String fileName="export";
request.setCharacterEncoding("utf-8");
response.setContentType("application/msword");//导出word格式
response.addHeader("Content-Disposition", "attachment;filename=" +
new String( (fileName + ".doc").getBytes(),
"iso-8859-1"));
OutputStream ostream = response.getOutputStream();
poifs.writeFilesystem(ostream);
bais.close();
ostream.close();
}
} catch (Exception e) {
result = false;
}
return result;
参考了不少大神关于导入的 博客,这里可能找不到了 抱歉!提示一下,这样写有可能会前台下载地址写死,这里可以参考其他方式 比如利用浏览器默认下载地址,这里我就不详细介绍了 也很简单