From 07487ddf952306162eea868763bcfad9333abe1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Sat, 21 Sep 2024 19:03:24 +0800 Subject: [PATCH] 'commit' --- .../dsideal/base/Tools/DataTransformer.java | 52 ++++++++++++++++++ .../java/com/dsideal/base/Tools/Sample.xlsx | Bin 0 -> 11374 bytes dsBase/target/classes/application_dev.yaml | 5 +- dsBase/target/classes/application_pro.yaml | 2 + 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java create mode 100644 dsBase/src/main/java/com/dsideal/base/Tools/Sample.xlsx diff --git a/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java b/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java new file mode 100644 index 00000000..7738eb6e --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/base/Tools/DataTransformer.java @@ -0,0 +1,52 @@ +package com.dsideal.base.Tools; + +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.jfinal.plugin.activerecord.Record; + +import java.io.File; +import java.util.*; + +public class DataTransformer { + public static void main(String[] args) { + String input = "D:\\dsWork\\dsProject\\dsBase\\src\\main\\java\\com\\dsideal\\base\\Tools\\Sample.xlsx"; + File file = new File(input); + + //哪些列是固定不动的,比如此处是第0列与第1列是不动的,就是年份+学段 + List fixedColumns = new ArrayList<>(); + fixedColumns.add(0); + fixedColumns.add(1); + + //每列的列号与列名对应关系 + String[] colNames = new String[1024]; + int cl = 0; + + // 读取Excel数据 + ExcelReader reader = ExcelUtil.getReader(file); + + //表头 + List> read = reader.read(0, 0);//第0行是表头 + for (int i = 0; i < reader.getColumnCount(); i++) { + colNames[cl++] = read.getFirst().get(i).toString(); + } + //数据 + 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列进行枚举 + for (int cNum : fixedColumns) { + String cName = colNames[cNum];//列名 + String value = row.get(cNum).toString();//列值 + System.out.print(cName + ":" + value+" "); + } + + String cName = colNames[i];//列名 + String value = row.get(i).toString(); + System.out.print(cName + ":" + value); + System.out.println(); + } + } + } + } +} diff --git a/dsBase/src/main/java/com/dsideal/base/Tools/Sample.xlsx b/dsBase/src/main/java/com/dsideal/base/Tools/Sample.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..67f63961a8062d63a1d8bd7a358461f6ac9f8b12 GIT binary patch literal 11374 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 a{LeV9BnttwK>z?A_@e}x@f(_-SN{)CCDfk) literal 0 HcmV?d00001 diff --git a/dsBase/target/classes/application_dev.yaml b/dsBase/target/classes/application_dev.yaml index 746c9655..7673bd7f 100644 --- a/dsBase/target/classes/application_dev.yaml +++ b/dsBase/target/classes/application_dev.yaml @@ -2,6 +2,8 @@ uploadTempPath: c:/Windows/Temp # JWT SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u mysql: # 数据库信息 @@ -17,9 +19,6 @@ redis: password: # ============================================================== -jwt: - # 生成Token的密码 - CookieMd5SingPwd: DsideaL4r5t6y7u excel: # 导出excel 的模板配置路径 diff --git a/dsBase/target/classes/application_pro.yaml b/dsBase/target/classes/application_pro.yaml index 8bcd10b9..0af87d49 100644 --- a/dsBase/target/classes/application_pro.yaml +++ b/dsBase/target/classes/application_pro.yaml @@ -2,6 +2,8 @@ uploadTempPath: /tmp # JWT SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u mysql: # 数据库信息