/**
* @Title exportQuestionLogs
* @Description 导出- 根据要求讲所有被谈话人问题整合 所有被考核干部 - 在模板基础上拼接
* @author guoxingzhan
* @date 2022/12/23 14:27
* @param leadeAssessId
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/exportQuestionLogs")
public void exportQuestionLogs(@RequestParam String leadeAssessId, HttpServletRequest request, HttpServletResponse response) {
OutputStream out = null;
try {
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("访谈记录.docx", "utf-8"));
out = response.getOutputStream();
// 根据id获取谈话信息
CadreConversationAssess model = cadreConversationAssessService.getById(leadeAssessId);
String wordPath = (uploadpath + File.separator + "gbthjlall.docx");
ParseWord07 pw07 = new ParseWord07();
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("date", DateUtil.DateToString(model.getCreateTime(), "yyyy/MM/dd"));
XWPFDocument doc2 = pw07.parseWord(wordPath, dataMap);
// XWPFDocument doc = new XWPFDocument();// 创建Word文件-不使用模板
XWPFParagraph p = doc2.createParagraph();// 新建一个段落
// p.setAlignment(ParagraphAlignment.CENTER);// 设置段落的对齐方式
// p.setBorderBottom(Borders.DOUBLE);//设置下边框
// p.setBorderTop(Borders.DOUBLE);//设置上边框
// p.setBorderRight(Borders.DOUBLE);//设置右边框
// p.setBorderLeft(Borders.DOUBLE);//设置左边框
XWPFRun r = null;//创建段落文本
// 分割被考核人id
String[] userIds = model.getUserId().split(",");
// 谈话内容
for (int uIndex = 0; uIndex < userIds.length; uIndex++ ) {
String userId = userIds[uIndex];
// 根据谈话id获取谈话问题
QueryWrapper<CadreConversationAssessQuestion> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("leade_assess_id", leadeAssessId);
List<CadreConversationAssessQuestion> list = questionService.list(queryWrapper);
r = p.createRun();//创建段落文本
// 被考核人姓名
r.setText(numberToChinese(uIndex + 1) + "、" + sysBaseAPI.getUserById(userId).getRealname());
// r.setBold(true);//设置为粗体
// r.setColor("FF0000");//设置颜色
r.setFontSize(16); // 三号
r.setFontFamily("黑体");
// 遍历谈话问题
for (int i = 0; i < list.size(); i++) {
// 根据谈话人id和谈话问题id获取谈话问题回复
QueryWrapper<CadreConversationAssessAnswer> answerWrapper = new QueryWrapper<>();
answerWrapper.eq("user_id", userId) // 被考核人
.eq("question_id", list.get(i).getId()); // 谈话问题
List<CadreConversationAssessAnswer> answers = answerService.list(answerWrapper);
// 拼接导出内容
// 问题标题
p = doc2.createParagraph();// 新建一个段落
r = p.createRun();
r.setFontSize(16); // 三号
r.setFontFamily("楷体_GB2312");
r.setText("(" + numberToChinese(i + 1) + ")" + list.get(i).getTitle());
// 问题回复列表
for(int j = 0; j < answers.size(); j++ ){
CadreConversationAssessAnswer answer = answers.get(j);
// 问题活肤
p = doc2.createParagraph();// 新建一个段落
r = p.createRun();
r.setFontSize(16); // 三号
r.setFontFamily("仿宋_GB2312");
r.setText((j + 1) + ". " + (answer != null ? answer.getContent(): "无"));
}
}
r.addCarriageReturn();//回车键
}
doc2.write(out);
} catch (Exception e) {
e.printStackTrace();
log.error("谈话记录", e.getMessage());
} finally {
try {
if (out != null) {
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
log.error("谈话记录", e.getMessage());
}
}
}
java导出word 在模板基础上拼接
最新推荐文章于 2024-04-13 05:43:10 发布