POI Excel 模板往固定位置插入内容

话不多说上代码
依赖

<dependency>
	
	<groupId>org.apache.poigroupId>
	<artifactId>poiartifactId>
	<version>3.13version>
dependency>
<dependency>
	
	<groupId>org.apache.poigroupId>
	<artifactId>poi-ooxmlartifactId>
	<version>3.13version>
dependency>

代码

 public static void createExcel(VBqDocumentPlan plan, VActWfWnProcess wnProcess, String tempFilePath, String outPath) {
     

	try {
     
		// excel模板路径
		File fi = new File(tempFilePath);
		InputStream in = new FileInputStream(fi);
		// 读取excel模板
		XSSFWorkbook wb = new XSSFWorkbook(in);
		// 读取了模板内所有sheet内容
		XSSFSheet sheet = wb.getSheetAt(0);
		// 如果这行没有了,整个公式都不会有自动计算的效果的
		sheet.setForceFormulaRecalculation(true);

		// 在相应的单元格进行赋值
		XSSFCell cell = sheet.getRow(2).getCell(4);// 所属部门
		if (NullUtil.isNotNull(plan.getRespDeptName())) {
     
			cell.setCellValue(plan.getRespDeptName());
		}
		XSSFCell cell2 = sheet.getRow(3).getCell(4);// 所属项目:
		if (NullUtil.isNotNull(plan.getProjName())) {
     
			cell2.setCellValue(plan.getProjName());
		}

		if (NullUtil.isNotNull(plan.getCode())) {
     
			sheet.getRow(4).getCell(4).setCellValue(plan.getCode());// 交付物编号:
		}

		sheet.getRow(5).getCell(4).setCellValue("d");// 技术文件编号:
		sheet.getRow(6).getCell(4).setCellValue("e");// 文件版本:
		if (NullUtil.isNotNull(plan.getName())) {
     
			sheet.getRow(7).getCell(0).setCellValue(plan.getName());// 名称
		}
		// 流程节点拿节点责任人
		List<VActWfStep> stepList = wnProcess.getStepList();
		if (NullUtil.isNotNull(stepList)) {
     
			for (VActWfStep vActWfStep : stepList) {
     
				List<VActWfStepUser> stepUserList = vActWfStep.getStepUserList();
				if ("编制".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(12).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 编制
					}
				}
				if ("审核".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(16).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 审核
					}
				}
				if ("会签".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(18).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 会签
					}
				}
				if ("审定".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(24).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 审定
					}
				}
				if ("批准".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(26).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 批准
					}
				}
				if ("校对".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(14).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 校对
					}
				}
				if ("标准化".equals(vActWfStep.getName())) {
     
					if (NullUtil.isNotNull(stepUserList)) {
     
						sheet.getRow(22).getCell(2).setCellValue(stepUserList.get(0).getUserName());// 标准化
					}
				}
			}
		}
		String now = LocalDate.now() + "";

		sheet.getRow(28).getCell(2).setCellValue(now.replace("-", "/"));// 生效日期
		// 修改模板内容导出新模板
		FileOutputStream out = new FileOutputStream(new File(outPath));
		wb.write(out);
		out.close();
	} catch (IOException e) {
     
		// TODO: handle exception
		logger.error("交付物审批生成Excel封面",e);
	}
}

你可能感兴趣的:(POI,EXCEL,模板)