最近公司项目需要将页面信息导出word报告,这里简单介绍下java poi操作word的一些代码
1:制作word模板,读取模板后,替换标识符,继续写入信息
2:直接创建模板,写入信息
针对直接创建模板,列出代码实现步骤
1:XWPFDocument doc = new XWPFDocument();
XWPFParagraph p1 = doc.createParagraph();//创建段落
XWPFRun r1 = p1.createRun();
// 设置字体是否加粗
r1.setBold(true);
r1.setFontSize(20);
// 设置使用何种字体
r1.setFontFamily("Courier");
// 设置上下两行之间的间距
r1.setTextPosition(20);
r1.setText("word标题---");
2:插入换行符方法/插入一行新的信息
public void insertInfo(String info,XWPFDocument doc){
XWPFRun r ;//内容区域
XWPFParagraph p;//段落
p = doc.createParagraph();//段落
p.setAlignment(ParagraphAlignment.LEFT);
r = p.createRun();//一个word文档需要显示的个体
r.setBold(false);
if(!"".equals(info)){
r.setText(info);
}
r.setFontSize(11);
}
3:插入表格
XWPFTable table = doc.createTable(行号, 列号);
List<XWPFTableCell> tableCells = table.getRow(0).getTableCells();//获取第一行所有列
tableCells.get(0).setText("地市");//得到第一行第一列插入文本信息
4:导出word
FileOutputStream out;
try {
out = new FileOutputStream("E:\\1.docx");
doc.write(out);
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
扩展:
1:环境支持,需要java jdk1.6以上,使用poijar版本需要一直,否则有可能出现问题
2:word可能需要插入数据趋势图,实现思路个人是,先利用插件产生图片,后将图片插入word
3:word产生表格,如果需要进行表格单元格合并,poi实现不合适,或者利用自己设好的word模板读取在写入