前段时间经理让我做个导出功能,我找了很多东西,后来发现java2word操作最简单,
但是有个很大的问题就是只支持window系统,还有就是要安装一个Java2Word.exe的文件,安装完后步如下:
1).先安装.exe文件(在文件中有此文件),把java2word.jar复制到lib目录下
2).安装好后,如果系统是32位的,那么在C:\Windows\System32 中有一个jacob.dll;如果系统是64位的,那么在C:\Windows\SysWOW64 中有一个jacob.dll。
3).找到jacob.dll,把它复制到(Tomcat路径)D:\apache-tomcat-7.0.32\bin 目录下,并且也复制到(jdk路径)D:\Programes\Java\jdk1.6.0_29\bin 中; 5).重启项目tomcat服务器.
4).确保已安装了完整的office
先从前端走起:
1.获取Highcharts的图片流也就是svg
function exportWord() {
var chart = $('#container1').highcharts();//获取Highcharts对象
var svg = chart1.getSVG()
.replace(/</g, '\n<').replace(/>/g, '>')
.replace(/(\n)+|(\r\n)+/g, "");//去除左右空格//去除换行
$("#svg").html(svg);//给form表单textarea赋值(form表单我就不贴了,不解释···)
$("#formid").submit();//提交form表单
}
然后就是后台了
public void exportWord() throws Exception {
// 获取svg图片流
String svg = request().getParameter("svg");
//转换成png格式,然后存放到本地
SvgToPngUtil.convertToPng(svg1, "d://svg.png");
//声明文档对象
Document doc1 = null;
try {
doc1 = new Document();
doc1.open("D:xxx.doc");// 打开文件
//a,b,c,d````读取的word模板文档里的书签,这是我定义好的,以26个字母为序
//title也是我定义好的样式
doc1.i