POI Excel实现内容替换
目录
1 Maven依赖
2 实现代码
3 调试代码
4 模板内容
5 调试结果
注:
1 Maven依赖
<!-- easyExcel Excel文档处理工具 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.8</version></dependency><!-- hutool工具包 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.7</version></dependency>
2 实现代码
/*** 替换Excel模板文件内容** @param replaceMap 文档数据*/public static void replaceSheet(Map<String, Object> replaceMap, Workbook workbook, Sheet sheet, Integer endRowIndex) {try {Iterator rows = sheet.rowIterator();while (rows.hasNext()) {Row row = (Row) rows.next();if (row == null) {continue;}int num = row.getLastCellNum();if (endRowIndex != null && row.getRowNum() > endRowIndex) {break;}for (int i = 0; i < num; i++) {Cell cell = row.getCell(i);if (cell == null || cell.getCellTypeEnum() == NUMERIC || cell.getStringCellValue() == null) {continue;}String value = cell.getStringCellValue();if (StrUtil.isNotEmpty(value) && value.indexOf("${") != -1) {cell.setCellValue(replaceValue(value, replaceMap));}}}} catch (Exception e) {e.printStackTrace();}}/*** 替换内容 ${}** @param value* @param replaceMap* @return*/public static String replaceValue(String value, Map<String, Object> replaceMap) {String str = value.substring(value.indexOf("${") + 2, value.indexOf('}'));if (StrUtil.isEmpty(str)) {return value;}value = value.replace("${" + str + "}", (String) replaceMap.get(str));return value;}
3 调试代码
@Testpublic void testReplace() {try {//读文件ClassPathResource classPathResource = new ClassPathResource("/doc/excel/replaceTemplate.xlsx");XSSFWorkbook workbook = new XSSFWorkbook(classPathResource.getFile());Sheet sheet = workbook.getSheetAt(0);File file = new File("D:/easyexcel/testReplace.xlsx");FileUtil.createNewFile(file);Map<String, Object> replaceMap = new HashMap<>();replaceMap.put("test1", "测试1");replaceMap.put("test2", "测试2");//替换内容POIExcelUtil.replaceSheet(replaceMap, workbook, sheet, null);workbook.write(new FileOutputStream(file));} catch (Exception e) {e.printStackTrace();}}
4 模板内容
5 调试结果
注:
(1)以${}符号表示需要替换的内容。
(2)源码请查看Gitee。
xudongbase: 主要是项目中可以用到的共通方法https://gitee.com/xudong_master/xudongbase
POI Excel实现内容替换相关推荐
- Java Excel文件内容替换
/*** 替换Excel模板文件内容** @param map 需要替换的标签建筑队形式* @param intPath Excel模板文件路径* @param outPath Excel生成文件路径 ...
- java excel 单元格类型,POI Excel 单元格内容类型判断并取值
个人用到的 String birthdayVal = null; switch (cell_2.getCellTypeEnum()) { case STRING: birthdayVal = cell ...
- 使用POI读取excel文件内容
1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...
- poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)
POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...
- java使用poi.xssf 写入内容到excel表格中 和 读取 表格里面的数据
一.java使用poi.xssf 写入内容到excel表格中 public class TestExcel {//创建一个excel工作簿public static String outputFile ...
- python替换excel指定内容_Python脚本操作Excel实现批量替换功能
大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换. 使用的工具 Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet, ...
- POI excel 单元个的内容 自适应行高
POI excel 单元个的内容 自适应行高 public static void main(String[] args) {InputStream is = null;Workbook book = ...
- word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)
批量生成word文档是让人无比厌恶但有时又不得不做的事情.比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有"姓名"."学院"和"专业&qu ...
- Java POI Excel移动行和复制行的处理
目录 Java POI Excel移动行和复制行的处理 坑点: 实现的代码 Java POI Excel移动行和复制行的处理 POI操作Excel时,不支持移动行的操作,因此在需要通过复制行+删除行+ ...
最新文章
- 命令行的基本使用方法(权限)
- Python基础-----while循环语句
- H5前端框架推荐合集 (转)
- CSS--布局模型,颜色值,长度值
- 又见链表 --- 另一种Creat方式与反转
- arraylist扩容是创建新数组吗 java_arraylist扩容机制要怎么实现?arraylist怎么扩容...
- Vue.JS学习笔记
- 什么是SIT测试,、UAT测试?
- 俄罗斯方块代码 java_JAVA语言俄罗斯方块代码实现
- Microbiome:鸡肠道微生物宏基因集(张和平、魏泓、秦楠点评)
- 几个黑科技、实用网站(转自公众号:趣说软件)
- 网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)
- uwb定位与蓝牙定位成本对比分析
- R语言循环函数编写三境界
- Win10 1709 无法访问局域网共享问题及解决
- ta点读笔客户端_点读笔到底哪支好?12款点读笔评测:看完不再稀里糊涂
- 太空动作游戏《Phobos Vector Prime》创作经验分享
- c语言——指针初阶(2)
- miui 7 android,小米MIUI 7仍然使用Android 4.4内核,米粉炸了
- DB2中group by的使用