Java通过模板替换实现excel的传参填写方式
作者:yui方木
文章介绍了使用Java模板替换功能来实现Excel文件的传参填写,通过将模板中的占位符(如$)进行转义和替换,可以动态生成包含具体数据的Excel文件,这种方法适用于需要批量生成带有个性化数据的Excel文档的场景
Java通过模板替换实现excel传参填写
以模板为例子

将上面$转义的内容替换即可
package com.gxuwz.zjh.util;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.stereotype.Component;
/**
* @author FangZenglin
* @date 2023年10月12日17:27
*/
@Component
public class ExcelZiDongTian {
public void xieexcel_qitajia(String exceldizhi,
String danwei,
String xingming,
String date,
String zhiwu,
String shiyou,
String leixing,
String baocundizhi) throws IOException {
FileInputStream templateFile = new FileInputStream(exceldizhi);
Workbook workbook = new XSSFWorkbook(templateFile);
templateFile.close();
Sheet sheet = workbook.getSheetAt(0);
Map<String, String> data = new HashMap<>();
data.put("danwei", danwei);
data.put("xingming", xingming);
data.put("date", date);
data.put("zhiwu", zhiwu);
data.put("shiyou", shiyou);
data.put("leixing", leixing);
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = cell.getStringCellValue();
if (cellValue.startsWith("$")) {
String key = cellValue.substring(1);
if (data.containsKey(key)) {
cell.setCellValue(data.get(key));
}
}
}
}
FileOutputStream outputStream = new FileOutputStream(baocundizhi);
workbook.write(outputStream);
workbook.close();
}
public void xieexcel_nianjia(String exceldizhi,
String danwei,
String shoucigongzuonianyue,
String gongling,
String quxiang,
String xingming,
String date,
String zhiwu,
String leixing,
String baocundizhi) throws IOException {
FileInputStream templateFile = new FileInputStream(exceldizhi);
Workbook workbook = new XSSFWorkbook(templateFile);
templateFile.close();
Sheet sheet = workbook.getSheetAt(0);
Map<String, String> data = new HashMap<>();
data.put("danwei", danwei);
data.put("xingming", xingming);
data.put("date", date);
data.put("zhiwu", zhiwu);
data.put("quxiang", quxiang);
data.put("shoucigongzuonianyue",shoucigongzuonianyue);
data.put("gongling",gongling);
data.put("leixing", leixing);
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = cell.getStringCellValue();
if (cellValue.startsWith("$")) {
String key = cellValue.substring(1);
if (data.containsKey(key)) {
cell.setCellValue(data.get(key));
}
}
}
}
FileOutputStream outputStream = new FileOutputStream(baocundizhi);
workbook.write(outputStream);
workbook.close();
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
