



时间:2022-08-16 关注公众号 来源:网络
Java生成word文档 最简单的java生成word文档方法,这篇文章主要介绍了java生成word文档最简单的方法,首先说明,使用该方法时,尽量不要使用wps新建word文档,经测试,手机不能兼容,出现很多格式问题,office则手机可以很好的兼容,所以,本文以office做教程
java调用PageOffice生成word
由于itext导出的word有各种各样的小问题,只能另找其他的解决方案,经过一个朋友推荐,可用PageOffice组件来导出word,其效果能与用户需求的word文档达到完美的一致,而且编程接口简单,调用很方便。总的来说就是制作模板(用PO_开头的书签作为数据占位符),然后编程调用PageOffice接口用真实数据替换模板中的占位符,最后生成word。下面看例子:
打开word模板插入书签:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示
调用PageOffice接口,给word模板填充数据生成word文档:
String docName = "", docDept = "", docCause = "", docNum = "", docDate = "";
// 数据库数据读取操作(不同的数据库用不同的代码)
ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id);
if (rs.next()) {
docName = rs.getString("Name");
docDept = rs.getString("Dept");
docCause = rs.getString("Cause");
docNum = rs.getString("Num");
docDate = rs.getString("SubmitTIMe");
rs.close();
//创建PageOffice的WordDocument对象,操作Word文件
WordDocument doc = new WordDocument();
doc.openDataRegion("PO_name").setValue(docName);
doc.openDataRegion("PO_dept").setValue(docDept);
doc.openDataRegion("PO_cause").setValue(docCause);
doc.openDataRegion("PO_num").setValue(docNum);
doc.openDataRegion("PO_date").setValue(docDate);
//创建PageOfficeCtrl对象打开文件
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerpage(request.getContextPath()+"/poserver.zz"); //此行必须
poCtrl1.setWriter(doc);
poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
java代码生成word文档(1)
word中经常会使用1. 2. 3. 之类的编号,在java自动化生成文档时的实现方式:
static String cTAbstractNumDecimalXML = ""+ ""+ ""+ ""+ ""+ "";
XWPFParagraph paragraph = doc.createParagraph();XWPFRun run = paragraph.createRun();CTNumbering cTNumbering = CTNumbering.Factory.parse(cTAbstractNumDecimalXML);CTAbstractNum cTAbstractNum = cTNumbering.getAbstractNumArray(0);XWPFAbstractNum abstractNum = new XWPFAbstractNum(cTAbstractNum);XWPFNumbering numbering = doc.createNumbering();BigInteger abstractNumID = numbering.addAbstractNum(abstractNum);BigInteger numID = numbering.addNum(abstractNumID);
以上代码可以实现编号,效果图:
XWPFParagraph par = doc.createParagraph();XWPFRun run = par.createRun();run.setFontFamily("等线");// 设置五号字体run.setFontSize(10.5);run.setColor("FF0000");run.setText("网络连接正常");
以上代码使用的是POI 5.0的版本。五号字体是word中的常用字体,对应是字体大小数字是10.5,新版本的POI在设置字体大小的setFontSize方法可以设置为double类型,5.0以下版本的POI不支持设置为double类型。
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站)
电话:13918309914
QQ:1967830372
邮箱:rjfawu@163.com