freemarker 导出word


学习的几篇文章:

使用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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值