Java通过模板替换实现excel的传参填写方式
更新时间:2025年12月11日 14:09:39 作者: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();
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot+Spring Security基于内存用户认证的实现
本文介绍了SpringBoot+Spring Security基于内存用户认证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-11-11
详谈hibernate,jpa与spring data jpa三者之间的关系
这篇文章主要介绍了hibernate,jpa与spring data jpa三者之间的关系,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
SpringCloud之服务注册与发现Spring Cloud Eureka实例代码
这篇文章主要介绍了SpringCloud之服务注册与发现Spring Cloud Eureka实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04


最新评论