freemarker 导出word

来源:互联网 发布:其 犹 橐 龠 乎 。 编辑:程序博客网 时间:2024/06/05 08:10


学习的几篇文章:

使用Freemarker生成Word :http://my.oschina.net/liweigov/blog/63868

《ava freemarker(xml模板) 导出word 》 http://xustar.iteye.com/blog/1284104


我的问题:

1、导出IO流不熟悉

2、尝试过直接写word,格式太难控制


Map<String, Object>  graduationCertificateInfo = statisticsDao.graduationCertificateInfo(idaos, params);if(graduationCertificateInfo.size()>0){}String studentName = (String) graduationCertificateInfo.get("studentName");String sex = (String) graduationCertificateInfo.get("sex");String specialty = (String) graduationCertificateInfo.get("specialty");BigDecimal requiredCredits = (BigDecimal) graduationCertificateInfo.get("requiredCredits");BigDecimal selectCredits = (BigDecimal) graduationCertificateInfo.get("selectCredits");BigDecimal totalScore = (BigDecimal) graduationCertificateInfo.get("totalScore");SimpleDateFormat sft = new SimpleDateFormat("yyyy年MM月dd日");sft.format(new Date());        XWPFDocument doc = new XWPFDocument();          // 标题        XWPFParagraph paragraph1 = doc.createParagraph();          paragraph1.setWordWrap(true);          paragraph1.setPageBreak(true);  //换页                 //p3.setAlignment(ParagraphAlignment.DISTRIBUTE);          // 设置字体对齐方式        paragraph1.setAlignment(ParagraphAlignment.CENTER);          paragraph1.setSpacingLineRule(LineSpacingRule.EXACT);            paragraph1.setIndentationFirstLine(600);          // title要使用paragraph1所定义的属性          XWPFRun title = paragraph1.createRun();          title.setBold(true);//加粗        title.setFontSize(26);        title.setTextPosition(-10);          // 设置上下两行之间的间距        title.setTextPosition(20);        title.setText("素质拓展证书");          title.addCarriageReturn();          // 设置证书正文        XWPFParagraph paragraph2 = doc.createParagraph();        paragraph2.setAlignment(ParagraphAlignment.LEFT);        XWPFRun r2 = paragraph2.createRun();        r2.setFontSize(22);        r2.setTextPosition(-10);          r2.setTextPosition(20);        r2.setText("    "+studentName+"");        r2.setUnderline(UnderlinePatterns.SINGLE);//        r2.setUnderline();        r2.setText(",性别"+sex+","+specialty+"专业"          + "级学生,完成“综合素质教育”计划的学习,修满"                  + "必修学分"+requiredCredits+",选修学分"+selectCredits+",成绩"+totalScore+",特发"                  + "此证。");          r2.addBreak();          // 设置证书正文        XWPFParagraph paragraph3 = doc.createParagraph();        paragraph3.setAlignment(ParagraphAlignment.LEFT);        XWPFRun r3 = paragraph3.createRun();        r3.setFontSize(22);        r3.setText("证书编号:12345678989");          r3.addBreak();                 // 设置证书正文        XWPFParagraph paragraph4 = doc.createParagraph();        paragraph4.setAlignment(ParagraphAlignment.RIGHT);        XWPFRun r4 = paragraph4.createRun();        r4.setFontSize(22);        r4.setText(sft.format(new Date()));                    r2.addBreak(BreakClear.ALL);                  String filename = "活动成绩详情.doc";OutputStream outStream = TempFileUtil.instanse().createFile(filename);        doc.write(outStream); Map<String, Object> result = new HashMap<String, Object>();result.put("path", "temp");result.put("filename", filename);return result;

3、xml格式乱了会打不开生成的word(注意〈〉和</>对称)

0 0
原创粉丝点击