diff --git a/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java b/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java index 76d15c73..0c9010e1 100644 --- a/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java +++ b/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java @@ -2,6 +2,7 @@ package com.dsideal.base.Tools; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; import java.io.File; import java.util.*; @@ -22,30 +23,46 @@ public class DataTransformer { // 读取Excel数据 ExcelReader reader = ExcelUtil.getReader(file); + // 创建一个ExcelWriter对象,初始化时会创建一个空的Excel文件 + ExcelWriter writer = ExcelUtil.getWriter("D:\\example.xlsx"); //表头 List> read = reader.read(0, 0);//第0行是表头 for (int i = 0; i < reader.getColumnCount(); i++) { colNames[cl++] = read.getFirst().get(i).toString(); } + // 写入表头 + List header = new ArrayList<>(); + for (int cNum : fixedColumns) { + String cName = colNames[cNum];//列名 + header.add(cName); + } + header.add("类型"); + header.add("数量"); + writer.writeHeadRow(header); + //数据 List> data = reader.read(1, reader.getRowCount());//从第1行读取到最后一行 for (List row : data) { //拆分每一行的数据 for (int i = 0; i < reader.getColumnCount(); i++) { if (!fixedColumns.contains(i)) {//非fixedColumns列进行枚举 + + List rowData = new ArrayList<>(); //输出固定列的名称和值 for (int cNum : fixedColumns) { - String cName = colNames[cNum];//列名 String value = row.get(cNum).toString();//列值 - System.out.print(cName + ":" + value + " "); + rowData.add(value); } String cName = colNames[i];//列名 String value = row.get(i).toString(); - System.out.print(cName + ":" + value); - System.out.println(); + rowData.add(cName); + rowData.add(value); + writer.writeRow(rowData); } } } + writer.close(); + System.out.println("恭喜,EXCEL文件成功生成!"); } }