目录

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实现内容替换相关推荐

  1. Java Excel文件内容替换

    /*** 替换Excel模板文件内容** @param map 需要替换的标签建筑队形式* @param intPath Excel模板文件路径* @param outPath Excel生成文件路径 ...

  2. java excel 单元格类型,POI Excel 单元格内容类型判断并取值

    个人用到的 String birthdayVal = null; switch (cell_2.getCellTypeEnum()) { case STRING: birthdayVal = cell ...

  3. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  4. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)

    POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...

  5. java使用poi.xssf 写入内容到excel表格中 和 读取 表格里面的数据

    一.java使用poi.xssf 写入内容到excel表格中 public class TestExcel {//创建一个excel工作簿public static String outputFile ...

  6. python替换excel指定内容_Python脚本操作Excel实现批量替换功能

    大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换. 使用的工具 Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet, ...

  7. POI excel 单元个的内容 自适应行高

    POI excel 单元个的内容 自适应行高 public static void main(String[] args) {InputStream is = null;Workbook book = ...

  8. word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)

    批量生成word文档是让人无比厌恶但有时又不得不做的事情.比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有"姓名"."学院"和"专业&qu ...

  9. Java POI Excel移动行和复制行的处理

    目录 Java POI Excel移动行和复制行的处理 坑点: 实现的代码 Java POI Excel移动行和复制行的处理 POI操作Excel时,不支持移动行的操作,因此在需要通过复制行+删除行+ ...

最新文章

  1. 命令行的基本使用方法(权限)
  2. Python基础-----while循环语句
  3. H5前端框架推荐合集 (转)
  4. CSS--布局模型,颜色值,长度值
  5. 又见链表 --- 另一种Creat方式与反转
  6. arraylist扩容是创建新数组吗 java_arraylist扩容机制要怎么实现?arraylist怎么扩容...
  7. Vue.JS学习笔记
  8. 什么是SIT测试,、UAT测试?
  9. 俄罗斯方块代码 java_JAVA语言俄罗斯方块代码实现
  10. Microbiome:鸡肠道微生物宏基因集(张和平、魏泓、秦楠点评)
  11. 几个黑科技、实用网站(转自公众号:趣说软件)
  12. 网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)
  13. uwb定位与蓝牙定位成本对比分析
  14. R语言循环函数编写三境界
  15. Win10 1709 无法访问局域网共享问题及解决
  16. ta点读笔客户端_点读笔到底哪支好?12款点读笔评测:看完不再稀里糊涂
  17. 太空动作游戏《Phobos Vector Prime》创作经验分享
  18. c语言——指针初阶(2)
  19. miui 7 android,小米MIUI 7仍然使用Android 4.4内核,米粉炸了
  20. DB2中group by的使用

热门文章

  1. 后端开发工程师需要掌握的内容
  2. win10设置让所有文件夹查看方式都是详细信息
  3. 螃蟹WiFi驱动中的Band Steering功能
  4. 日中中日翻译必携 实战 5册套装 日文原版_推荐
  5. Scrapy爬虫框架管道文件pipelines数据图像存储
  6. 多种方法解决多个div并排显示的问题
  7. WATCHMEN 守望者,好看。
  8. 为什么玩转Power BI一定需要Office 365
  9. 4G摄像头采用GB28181协议成功接入LiveGBS国标流媒体平台的设置流程
  10. 阿里阿里,搞不定政企