Java使用Excel模板导出文件,并合并
使用Excel模板导出文件感谢大神 吃茫茫@chimmhuang 的分享
合并Excel功能转自
1、pom中引入chimmhuang
<dependency>
<groupId>com.github.chimmhuang</groupId>
<artifactId>chimm.excel</artifactId>
<version>1.2.0</version>
</dependency>
2、方法类
package com.ruoyi.components.controller;
import com.github.chimmhuang.excel.ExcelHelper;
import com.github.chimmhuang.excel.tablemodel.ExcelWorkbook;
import com.github.chimmhuang.excel.tablemodel.SheetTable;
import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Created by xialing on 2022/5/12
*/
public class ExcelUtils {
/**
*
* @param path 模板附件路径
* @param sheet 模板sheet编号(从0开始)
* @param dataMap 数据内容
* @param hs 当前模板总行数(有多个动态表格时要根据这个值要确定存放位置)
* @param ywzbid 文件名称
*/
public static void createExcel(String path, int sheet, Map<String,Object> dataMap, int hs, String ywzbid){
try {
File file = new File(path);
byte[] bytes = FileUtils.readFileToByteArray(file);
// 通过 ExcelHelper 获取 excel 表格对象
ExcelWorkbook excelWorkbook = ExcelHelper.createWorkbook(bytes);
// 获取指定的 sheet 页(该对象即是我们设置好的表格模板)
SheetTable table = excelWorkbook.getSheet(sheet);
//动态设置表格
int addrow = 0;
for (String key : dataMap.keySet()) {
if(key.contains("WZ")){
String wz = dataMap.get(key).toString();
List<Map<String,Object>> list = (List<Map<String, Object>>) dataMap.get(key.substring(