批量替换excel模板变量

第一步:定义模板

            

第二步:代码实现如下:

          

public void createExcelFile() {
		LoadWordFileAction loadWordFileAction = new LoadWordFileAction();
		Map map = new HashMap<String, Object>();
		map.put("$projectName", "XX市工程");
		map.put("$buildOrganization", "XX电建设公司");
		map.put("$hth", "20151001");
		loadWordFileAction.loadExcelFile(map);
	}
	public void loadExcelFile(Map map) {
		String templateFile = this.getRequest().getRealPath("/")
				+ "template\\excelTemplate.xls";
		String saveDocFile = this.getRequest().getRealPath("/")
				+ "template\\desigExcel.xls";
		try {
			Workbook workbook = new XSSFWorkbook(new FileInputStream(
					templateFile));
			// 获得指定的表
			Sheet sheet = workbook.getSheetAt(0);
			// 获得数据总行数
			int rowCount = sheet.getLastRowNum();
			for (int i = 0; i < rowCount; i++) {
				// 获得行对象
				Row row = sheet.getRow(i);
				if (row != null) {
					// 获得本行中单元格的个数
					int cellNumrow = row.getLastCellNum();
					// 获得本行中各单元格中的数据
					for (short columnIndex = 0; columnIndex < cellNumrow; columnIndex++) {
						Cell cell = row.getCell(columnIndex);
						// 获得指定单元格中数据
						Object cellStr = this.getCellString(cell);
						if (cellStr != null) {
							String cellValue = cellStr.toString();
							if (cellValue.indexOf("$") >= 0) {
								if (map.get(cellValue) != null
										&& !"".equals(map.get(cellValue))) {
									//System.out.println(cellValue);
									cell.setCellValue(map.get(cellValue)
											.toString());
								} else {
									cell.setCellValue("");
								}
							} 
						}
					}
				}
			}
			OutputStream out = new FileOutputStream(saveDocFile);
			workbook.write(out);
			System.out.println("已完成");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值