个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板)

一、替换Excel表格标签方法
```
/**
* 替换Excel模板文件内容
* @param map
* 需要替换的标签建筑队形式
* @param intPath
* Excel模板文件路径
* @param outPath
* Excel生成文件路径
*/
public static boolean replaceSheetsModel(Map map, String intPath, String outPath) {
boolean flag = true;
try {
FileInputStream fs = new FileInputStream(intPath);
//EXCEL xlsx格式与xls格式用的类是不同的,xlsx用的是XSSFWorkbook
XSSFWorkbook workbook = new XSSFWorkbook(fs);
XSSFWorkbook wb = (XSSFWorkbook) workbook;
XSSFSheet sheet;
//由于个人使用是多sheet故获取excel对象后进行sheet遍历,分别对每个sheet里面的标签进行替换
for (int j = 0; j < wb.getNumberOfSheets(); j++) {
sheet = workbook.getSheetAt(j);
Iterator rows = sheet.rowIterator();
while (rows.hasNext()) {
XSSFRow row = (XSSFRow) rows.next();
if (row != null) {
int num = row.getLastCellNum();
for (int i = 0; i < num; i++) {
XSSFCell cell = row.getCell(i);
if (cell != null) {
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
}
if (cell == null || cell.getStringCellValue() == null) {
continue;
}
String value = cell.getStringCellValue();
if (!"".equals(value)) {
Set<String> keySet = item.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
String text = it.next();
if (value.equalsIgnoreCase(text)) {
cell.setCellValue((String) item.get(text));
break;
}
}
} else {
cell.setCellValue("");
}
}
}
}
}
// 输出文件
FileOutputStream fileOut = new FileOutputStream(outPath);
wb.write(fileOut);
fileOut.close();
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
return flag;
}
```
二、借助main方法进行测试

```
public static void main(String[] args) {
Map map = new HashMap();
map.put("aa", "sheet1");
map.put("bb", "sheet2");
map.put("cc", "sheet3");
map.put("dd", "sheet4");
// test.xlsx为Excel模板文件,sheets.xlsx为程序生成的新文件
replaceSheetsModel(item, "f:\test.xlsx", "f:\\sheets.xlsx");
}
```
三、工具包说明(JAVAPOI)
1.头部核心

```
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
```

2.工具包名称以及版本
poi-ooxml 3.16

如有疑问,若不嫌弃,可私信我,也可一起探讨POI 操作EXCEL表格,相互成长

JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签的更多相关文章

  1. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  2. 在java poi导入Excel通用工具类示例详解

    转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36   作者:daochuwenziyao   我要评论   这篇文章主要给大家介绍了关于在j ...

  3. java POI创建Excel示例(xslx和xsl区别 )

    Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...

  4. 替换excel模板中的内容并使用JavaMail发送邮件

    由于在公司工作,常年出差,每天都要以日报的形式向公司汇报当天的工作内容.而日报的内容大体上就只有当天工作的主要内容时变化的,其余的都是不变 的. 而我的电脑刚打开excel有点卡,因此决定使用Java ...

  5. java实现赋值excel模板,并在新文件中写入数据,并且下载

    /** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...

  6. poi读取Excel模板并修改模板内容与动态的增加行

    有时候我们可能遇到相当复杂的excel,比如表头的合并等操作,一种简单的方式就是直接代码合并(浪费时间),另一种就是写好模板,动态的向模板中增加行和修改指定单元格数据. 1.一个简单的根据模板shee ...

  7. java poi出excel换行问题

    POI操作excel实现换行问题. package jp.co.misumi.mdm.batch.common.jobrunner; import java.io.FileInputStream; i ...

  8. poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算

    /** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...

  9. POI根据EXCEL模板,修改内容导出新EXCEL (只支持HSSF)

    package excelPoiTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...

随机推荐

  1. 国际站中国区,孟买上Redis 4.0 集群版

    信息摘要: 国际站中国区,孟买上线Redis 4.0 集群版适用客户: 所有用户版本/规格功能: redis 4.0 集群版产品文档: https://www.alibabacloud.com/hel ...

  2. Unity碰撞检测

    2019独角兽企业重金招聘Python工程师标准>>> 我们在用unity做开发的时候,会遇到要用到碰撞检测的问题,比如说,物体撞到墙壁,子弹打到物体等等,所以这里简单介绍一下uni ...

  3. 初识DP动态规划

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

  4. CF思维联系– CodeForces -CodeForces - 992C Nastya and a Wardrobe(欧拉降幂+快速幂)

    Nastya received a gift on New Year - a magic wardrobe. It is magic because in the end of each month ...

  5. Nginx模块开发(2)————下载文件

    Nginx的HTTP模块下载文件和传送缓冲区的字符串差不多,只需将文件标志置为1即可,我转送的文件是mp3的,所以HTTP的那个mine 类型要写为audio/mp3,二话不说了,贴代码,代码和之前那 ...

  6. matlab-均值滤波

    均值滤波 主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度.有效抑制加性噪声.缺点:容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理. 均值滤波器的缺点是存在着边缘模 ...

  7. 如何将PHP7达到最高性能

    PHP7 VS PHP5.6 1. Opcache 记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人 ...

  8. async与await----js的异步处理

    async与await----js的异步处理 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 之前写代码遇到一个问题,返回 ...

  9. 解决json字符串转为对象时LocalDateTime异常问题

    1 出现异常 这次的异常出现在前端向后端发送请求体里带了两个日期,在后端的实体类中,这两个日期的格式都是JDK8中的时间类LocalDateTime.默认情况下,LocalDateTime只能解析20 ...

  10. 简单ajax跨域请求

    最近遇到需要ajax跨域的需求 首先看下不做任何处理特别处理的ajax跨域请求会出现什么样的错误 客户端代码: <script type="text/javascript"& ...