From 06225d08ae5fda1dde5d498c764c819f66cc7808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 14 Nov 2024 14:36:17 +0800 Subject: [PATCH 1/3] 'commit' --- .../Tools/FillData/ExcelKit/ExcelKit.java | 75 ++++++++++++++++++- .../dsideal/base/Tools/Step5_ReaderExcel.java | 18 +++-- .../com/dsideal/base/Tools/Test/TestRead.java | 35 +++++++++ 3 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/dsideal/base/Tools/Test/TestRead.java diff --git a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java index 94fac8d4..088fac81 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java @@ -387,6 +387,7 @@ public class ExcelKit { /** * 读取excel文件 + * * @param excelFilePath * @param skipRows * @return @@ -482,10 +483,82 @@ public class ExcelKit { data = ExcelKit.readExcelToList(ExcelKit.excelPath, skipRows); System.out.println("二次获取数据条目数量:" + data.size() + ",期望数量=" + expectLimit); - }else{ + } else { System.out.println("期望数量>=" + expectLimit + ",现在有" + totalRow + "条,理解为数据读取正确,直接返回POI获取的数据列表..."); } System.out.println("=========================================================================================================="); return data; } + + /** + * 读取指定Sheet的第2个表格 + * + * @param filePath 文件路径 + * @param sheetIndex 第几个Sheet + * @param keyword 表格正文上方的文字 + * @param headRows 这个表格上面有几行是表头 + * @param letterIndex 结束的列,如:K + * @return 表格的数据,不带表头 + * @throws IOException + */ + public static List> readSecondTable(String filePath, int sheetIndex, + String keyword, int headRows, String letterIndex) throws IOException { + int tableWidth = ExcelKit.transLetter2Num(letterIndex) + 1; + return readSecondTable(filePath, sheetIndex, keyword, headRows, tableWidth); + } + + /** + * 读取指定Sheet的第2个表格 + * + * @param filePath 文件路径 + * @param sheetIndex 第几个Sheet + * @param keyword 表格正文上方的文字 + * @param headRows 这个表格上面有几行是表头 + * @param tableWidth 表格的宽度 + * @return 表格的数据,不带表头 + * @throws IOException + */ + public static List> readSecondTable(String filePath, int sheetIndex, + String keyword, int headRows, int tableWidth) throws IOException { + List> dataList = new ArrayList<>(); + FileInputStream fis = new FileInputStream(filePath); + Workbook workbook = new XSSFWorkbook(fis); + Sheet sheet = workbook.getSheetAt(sheetIndex); + int rowIndex = 0; + //从rowIndex开始,向下面查找,直到第一列中出现文字“自动计算招生数、在校生数”,此行的再下一行就是真正的第二个表格的开始位置 + int start = -1, end = -1; + + //找到开始行 + for (; rowIndex <= sheet.getLastRowNum(); rowIndex++) { + Row row = sheet.getRow(rowIndex); + if (row != null && row.getCell(0) != null + && row.getCell(0).toString().contains(keyword)) { + if (start == -1) + start = rowIndex; + } + if (start > 0 && row == null) { + end = rowIndex - 1; + break; + } + } + start += headRows;//第二个表的表头有几行 + //输出第二个表格的数据 + for (rowIndex = start; rowIndex <= end; rowIndex++) { + Row row = sheet.getRow(rowIndex); + List rowData = new ArrayList<>(); + for (int j = 0; j < tableWidth; j++) { + Cell cell = row.getCell(j); + // 如果单元格是公式类型 + if (cell.getCellType() == CellType.FORMULA) { + // 计算公式结果 + cell.setCellType(CellType.NUMERIC); + } + rowData.add(ExcelKit.readCell(cell)); + } + dataList.add(rowData); + } + workbook.close(); + fis.close(); + return dataList; + } } diff --git a/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java b/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java index 0f1d1ef7..de7bc38e 100644 --- a/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java @@ -11,11 +11,14 @@ public class Step5_ReaderExcel { public static void main(String[] args) throws IOException { - String filePath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\133个县区报告2022\\县区研究报告\\楚雄州各县市报告10\\1.楚雄市人口变化趋势对基础教育的影响分析报告\\附件2 楚雄市教育发展规模数据收集表(2024.06.13).xlsx"; + String filePath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\区\\【1】学前幼儿入园总量预测\\鲁甸县教育发展规模数据收集表.xlsx"; //第一个表格的宽度=23 - int firstTableWidth = 23; + int firstTableWidth = ExcelKit.transLetter2Num("W") + 1; //第二个表格的宽度=11 - int secondTableWidth = 11; + int secondTableWidth = ExcelKit.transLetter2Num("K") + 1; + + System.out.println(firstTableWidth); + System.out.println(secondTableWidth); FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis); @@ -23,17 +26,16 @@ public class Step5_ReaderExcel { for (int i = 0; i < 4; i++) { Sheet sheet = workbook.getSheetAt(i); System.out.println("Sheet Name: " + sheet.getSheetName()); - - // 创建FormulaEvaluator对象 + int skipRows = 2;//放过头两行 int rowIndex; - for (rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) { + for (rowIndex = skipRows; rowIndex <= sheet.getLastRowNum(); rowIndex++) { Row row = sheet.getRow(rowIndex); if (row == null) break; - if (row.getRowNum() == 0) continue; // 跳过标题行, 本项目中有标题行 // 读取表格数据 for (int j = 0; j < firstTableWidth; j++) { Cell cell = row.getCell(j); - ExcelKit.readCell(cell); + if (cell != null) + System.out.print(ExcelKit.readCell(cell)+"\t"); } System.out.println(); } diff --git a/src/main/java/com/dsideal/base/Tools/Test/TestRead.java b/src/main/java/com/dsideal/base/Tools/Test/TestRead.java new file mode 100644 index 00000000..00cffbca --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/Test/TestRead.java @@ -0,0 +1,35 @@ +package com.dsideal.base.Tools.Test; + +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class TestRead { + + public static void main(String[] args) throws IOException { + //待读取的EXCEL文件 + String filePath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\区\\【1】学前幼儿入园总量预测\\鲁甸县教育发展规模数据收集表.xlsx"; + //表格正文上方的文字 + String keyword = "自动计算招生数、在校生数"; + + //遍历每个Sheet + for (int k = 0; k < 4; k++) { + //为什么headRows=2?答:因为有一行是关键字,下一行是表头,共2行 + //letterIndex=K,表示第二个表格最后一列是字母K + List> dataList = ExcelKit.readSecondTable(filePath, k, keyword, 2, "K"); + //输出数据 + for (int i = 0; i < dataList.size(); i++) { + for (int j = 0; j < dataList.get(i).size(); j++) { + System.out.print(dataList.get(i).get(j) + " "); + } + System.out.println(); + } + } + + } +} \ No newline at end of file From ac39476444706eb5ad94eb9f2ffb1fd4661182d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 14 Nov 2024 14:40:43 +0800 Subject: [PATCH 2/3] 'commit' --- .../java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java index 088fac81..beab5739 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java @@ -542,6 +542,7 @@ public class ExcelKit { } } start += headRows;//第二个表的表头有几行 + System.out.println("第二个表格开始行索引=" + start + ",结束行索引=" + end); //输出第二个表格的数据 for (rowIndex = start; rowIndex <= end; rowIndex++) { Row row = sheet.getRow(rowIndex); From 10f1162d815c70944668ce48cad08219c5ff6fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 14 Nov 2024 14:44:59 +0800 Subject: [PATCH 3/3] 'commit' --- ...教育数据更新表(未完善).xls | Bin 40960 -> 0 bytes .../人口总体情况.xlsx | Bin 8564 -> 8568 bytes .../人口总体情况【成果】.xlsx | Bin 5231 -> 3527 bytes .../dsideal/base/Tools/FillData/Area/A1.java | 30 ++---------------- .../Tools/FillData/ExcelKit/ExcelKit.java | 1 + 5 files changed, 4 insertions(+), 27 deletions(-) delete mode 100644 Doc/全省及州市县区人口与教育报告集20241023/2023年数据更新表/16州市数据更新表汇总20241021/(10.21)2023年红河州各县市人口与教育数据更新表(未完善).xls diff --git a/Doc/全省及州市县区人口与教育报告集20241023/2023年数据更新表/16州市数据更新表汇总20241021/(10.21)2023年红河州各县市人口与教育数据更新表(未完善).xls b/Doc/全省及州市县区人口与教育报告集20241023/2023年数据更新表/16州市数据更新表汇总20241021/(10.21)2023年红河州各县市人口与教育数据更新表(未完善).xls deleted file mode 100644 index 7a173ee70e66726bc86e7695e6fce8498cf2cc50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40960 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 diff --git a/Doc/待处理/市/【8】人口总体情况/人口总体情况【成果】.xlsx b/Doc/待处理/市/【8】人口总体情况/人口总体情况【成果】.xlsx index b9ebb539c3cef3a04d204ceddcf860d36c7d6f1c..384b9bfb0567cf9ce2826c3b25e2e0d0413c06ba 100644 GIT binary patch delta 2007 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 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java b/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java index e0819eec..ae001865 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java @@ -64,34 +64,10 @@ public class A1 { System.out.println("正在进行" + cityName + "的数据填充~"); //如果源文件或者示例文件是xls格式,则转化为xlsx格式 String sourceExcel = file.getAbsolutePath(); - sourceExcel = ExcelKit.ConvertXlsToXlsx(sourceExcel); - //它的最后一个有效数据行,就是这个城市的整体数据汇总 - List> sheetList = ExcelKit.readSheet(sourceExcel, 4);//此表格有4行表头 - //最后一行的数据就是整个市州的数据 - List rowData = sheetList.getLast(); + List> dataList=ExcelKit.readSecondTable(sourceExcel, 0, "自动计算招生数、在校生数", + 2, "K"); - try { - Row outRow = outSheet.createRow(++rowIndex); - Double allCount = Double.parseDouble(rowData.get(ExcelKit.transLetter2Num("B"))) / 10000; - Double chengZhenCount = Double.parseDouble(rowData.get(ExcelKit.transLetter2Num("D"))) / 10000; - Double xiangChunCount = Double.parseDouble(rowData.get(ExcelKit.transLetter2Num("E"))) / 10000; - Double lv = - Double.parseDouble(rowData.get(ExcelKit.transLetter2Num("D"))) / - Integer.parseInt(rowData.get(ExcelKit.transLetter2Num("B"))); - //需要保留两位小数 - lv = Double.parseDouble(String.format("%.2f", lv)); - ExcelKit.putData(outRow, Arrays.asList(cityName, "总人口",Double.parseDouble(String.format("%.2f", allCount))+"" , "万人", "云南省"), dataStyle); - outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(cityName, "城镇人口",Double.parseDouble(String.format("%.2f", chengZhenCount))+"", "万人", "云南省"), dataStyle); - outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(cityName, "乡村人口", Double.parseDouble(String.format("%.2f", xiangChunCount))+"", "万人", "云南省"), dataStyle); - outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(cityName, "城镇化率", lv + "%", "", "云南省"), dataStyle); - } catch (Exception err) { - System.out.println("错误数据:"); - System.out.println(rowData); - System.exit(0); - } + System.out.println(dataList); } } //保存文件 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java index beab5739..4faee8af 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java @@ -520,6 +520,7 @@ public class ExcelKit { */ public static List> readSecondTable(String filePath, int sheetIndex, String keyword, int headRows, int tableWidth) throws IOException { + filePath = ConvertXlsToXlsx(filePath); List> dataList = new ArrayList<>(); FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis);