Java使用Excel模板匯出檔案,併合並
阿新 • • 發佈:2022-05-12
使用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(