|
|
|
@ -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<List<Object>> read = reader.read(0, 0);//第0行是表头
|
|
|
|
|
for (int i = 0; i < reader.getColumnCount(); i++) {
|
|
|
|
|
colNames[cl++] = read.getFirst().get(i).toString();
|
|
|
|
|
}
|
|
|
|
|
// 写入表头
|
|
|
|
|
List<String> header = new ArrayList<>();
|
|
|
|
|
for (int cNum : fixedColumns) {
|
|
|
|
|
String cName = colNames[cNum];//列名
|
|
|
|
|
header.add(cName);
|
|
|
|
|
}
|
|
|
|
|
header.add("类型");
|
|
|
|
|
header.add("数量");
|
|
|
|
|
writer.writeHeadRow(header);
|
|
|
|
|
|
|
|
|
|
//数据
|
|
|
|
|
List<List<Object>> data = reader.read(1, reader.getRowCount());//从第1行读取到最后一行
|
|
|
|
|
for (List<Object> row : data) {
|
|
|
|
|
//拆分每一行的数据
|
|
|
|
|
for (int i = 0; i < reader.getColumnCount(); i++) {
|
|
|
|
|
if (!fixedColumns.contains(i)) {//非fixedColumns列进行枚举
|
|
|
|
|
|
|
|
|
|
List<String> 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文件成功生成!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|