diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx index ce637ded..2d13971c 100644 Binary files a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx and b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx differ diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx index c8492cd8..718ef389 100644 Binary files a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx and b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx differ diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Area/A12.java b/src/main/java/com/dsideal/base/Tools/FillData/Area/A12.java index 318ea108..c5cb8d9f 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Area/A12.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A12.java @@ -85,7 +85,7 @@ public class A12 { //县区名称 //System.out.println(file.getAbsolutePath()); int chartNumber = 36; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), chartNumber, 0); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0); //需要处理下人与万人的单位兼容 // for (int i = 0; i < source1.size(); i++) { diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Area/A8.java b/src/main/java/com/dsideal/base/Tools/FillData/Area/A8.java index 3afed102..1fd63f7c 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Area/A8.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A8.java @@ -92,7 +92,7 @@ public class A8 { //System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~"); int firstChartNumber = 1; List> source1 = - ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 6);//从2017年开始 + ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 6);//从2017年开始 } diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Area/A9.java b/src/main/java/com/dsideal/base/Tools/FillData/Area/A9.java index 6b39dd7b..78917453 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Area/A9.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A9.java @@ -92,11 +92,11 @@ public class A9 { //System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~"); int chartNumber = 2; List> source2 = - ExcelKit.readChart(file.getAbsolutePath(), chartNumber - 1, 6); + ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 6); chartNumber = 3; List> source3 = - ExcelKit.readChart(file.getAbsolutePath(), chartNumber - 1, 6); + ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 6); } } diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java index 28b31534..20e7465c 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java @@ -65,8 +65,8 @@ public class C1 { //1号模板,数据在图表5和28中 int firstChartNumber = 5, secondChartNumber = 28; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); //遍历source1 if (source1 != null) { diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C10.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C10.java index a6d4d29b..017da9b9 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C10.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C10.java @@ -65,9 +65,9 @@ public class C10 { //数据在图表2,图3 int firstChartNumber = 2, secondChartNumber = 3; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 6);//从2017年开始 + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber , 6);//从2017年开始 - List> source3 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber - 1, 2); + List> source3 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber , 2); ;//从2023年开始 //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C11.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C11.java index b3bdb5a2..39018bca 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C11.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C11.java @@ -66,7 +66,7 @@ public class C11 { int firstChartNumber = 36, secondChartNumber = 37; //占地面积37 - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); //年份,学前,小学,初中,高中 // 0 1 2 3 4 //所有相关2022基数的列都使用2022的数据 @@ -79,7 +79,7 @@ public class C11 { int gxjzgJS = (int) (Double.parseDouble(firRow.get(4)) * 10000);//高中教职工2022基数 - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber - 1, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); //年份,学前,小学,初中,高中 // 0 1 2 3 4 List secRow = source2.getFirst(); diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C2.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C2.java index 17afbb5d..33dcbb31 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C2.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C2.java @@ -65,8 +65,8 @@ public class C2 { //1号模板,数据在图表6和29中 int firstChartNumber = 6, secondChartNumber = 29; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber - 1, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); String c2 = "总在园数"; //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C3.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C3.java index 4622c6b7..96c804ee 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C3.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C3.java @@ -90,8 +90,8 @@ public class C3 { int firstChartNumber = listNode.get(q).getFirst(), secondChartNumber = listNode.get(q).getSecond(); String stageName = listNode.get(q).getStageName(); - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber - 1, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); String c2 = "总招生数"; //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C4.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C4.java index 4d49f9d4..34570e66 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C4.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C4.java @@ -89,8 +89,8 @@ public class C4 { int firstChartNumber = listNode.get(q).getFirst(), secondChartNumber = listNode.get(q).getSecond(); String stageName=listNode.get(q).getStageName(); - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); String c2 = "总在校生"; //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C5.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C5.java index 87173785..052601a1 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C5.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C5.java @@ -63,8 +63,8 @@ public class C5 { //读取文件 //1号模板,数据在图表11和34中 int firstChartNumber = 11, secondChartNumber = 34; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); String c2 = "总招生数"; //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C6.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C6.java index ac1d0d1d..d23801f4 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C6.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C6.java @@ -63,8 +63,8 @@ public class C6 { //读取文件 //1号模板,数据在图表12和35中 int firstChartNumber = 12, secondChartNumber = 35; - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber, 1); - List> source2 = ExcelKit.readChart(file.getAbsolutePath(), secondChartNumber, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber, 1); + List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber, 1); String c2 = "总在校生数"; //遍历source1 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C9.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C9.java index 7d494fcc..39d694a6 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C9.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C9.java @@ -72,7 +72,7 @@ public class C9 { //chartNumber:第几个图表 //skipRowCount:跳过的行数,2017年开始,第一行是表头,第二行开始是2022,所以填写了跳过6行 //expectLimit:期望的数据行数,首先用POI进行解析,如果获取的行数大于预期行数,就是正确的,否则就需要二次调用python进行读取 - List> source = ExcelKit.readChart(file.getAbsolutePath(), chartNumber - 1, 6); + List> source = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 6); System.out.println("当前城市数据条目数量=" + source.size()); 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 a997d236..85344321 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 @@ -3,7 +3,6 @@ package com.dsideal.base.Tools.FillData.ExcelKit; import com.dsideal.base.DataEase.Model.ExcelReader; import com.jfinal.kit.StrKit; import org.apache.commons.io.FileUtils; -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFFont; @@ -352,9 +351,8 @@ public class ExcelKit { * @param skipRowCount 跳过的行数 * @return 结果数据 * @throws IOException - * @throws InvalidFormatException */ - public static List> getChartDataByXml(String docPath, int chartNumber, int skipRowCount) throws IOException, InvalidFormatException, InterruptedException, DocumentException { + public static List> getChartData(String docPath, int chartNumber, int skipRowCount) throws IOException, DocumentException { List> data = readChart(docPath, chartNumber); //需要跳过前skipRowCount行,先要判断一下是不是够跳的,不够跳的直接输出错误 if (data == null || data.size() < skipRowCount) { @@ -365,28 +363,6 @@ public class ExcelKit { return data; } - public static List> readChart(String docPath, int chartNumber, int skipRowCount) throws IOException, InvalidFormatException, DocumentException, InterruptedException { - return getChartDataByXml(docPath, chartNumber, skipRowCount); - -// InputStream is = new FileInputStream(docPath); -// ZipSecureFile.setMinInflateRatio(-1.0d); -// XWPFDocument doc = new XWPFDocument(is); -// //排序后的图表 -// List charts = ExcelKit.getSortListForXWPFChart(doc.getCharts()); -// -// if (charts.size() < chartNumber) { -// System.out.println(docPath + ",没有第" + chartNumber + "个图表,请检查!"); -// return null; -// } -// XSSFWorkbook workbook = charts.get(chartNumber - 1).getWorkbook(); -// List> data = ExcelKit.readSheet(workbook, skipRowCount); -// is.close(); -// if (data.isEmpty()) { -// System.out.println(docPath + ",第" + chartNumber + "个图表,存在数据外链接情况,改用XML方式处理!"); -// return getChartDataByXml(docPath, chartNumber, skipRowCount); -// } -// return data; - } /** * 读取指定Sheet的第2个表格 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Test/C11.java b/src/main/java/com/dsideal/base/Tools/FillData/Test/C11.java index d4f6823a..0842ddcf 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Test/C11.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Test/C11.java @@ -22,7 +22,7 @@ public class C11 { int firstChartNumber = 36, secondChartNumber = 37; //占地面积37 - List> source1 = ExcelKit.readChart(file.getAbsolutePath(), firstChartNumber - 1, 1); + List> source1 = ExcelKit.getChartData(file.getAbsolutePath(), firstChartNumber - 1, 1); ExcelKit.printTable(source1); } } diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java b/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java index d78b4a7c..c14e57db 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java @@ -12,7 +12,7 @@ public class TestSingle { public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, DocumentException { String sourceWord = "c:/西双版纳州人口变化及其对教育的影响20240420.docx"; - List> list = ExcelKit.readChart(sourceWord, 1); + List> list = ExcelKit.getChartData(sourceWord, 1,0); ExcelKit.printTable(list); } } diff --git a/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java b/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java index 257d0aec..f80abb6e 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java @@ -18,7 +18,7 @@ public class TestOutSideExcel { for (int chartNumber = 4; chartNumber <= 4; chartNumber++) { System.out.println("正在处理第" + chartNumber + "个图表的信息~"); //读取图表 - List> list = ExcelKit.readChart(sourceDoc, chartNumber); + List> list = ExcelKit.getChartData(sourceDoc, chartNumber,0); ExcelKit.printTable(list); } } diff --git a/src/main/java/com/dsideal/base/Tools/Test/TestXml.java b/src/main/java/com/dsideal/base/Tools/Test/TestXml.java index a50570e2..970877cf 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/TestXml.java +++ b/src/main/java/com/dsideal/base/Tools/Test/TestXml.java @@ -11,11 +11,11 @@ public class TestXml { public static void main(String[] args) throws DocumentException, IOException { String sourceDoc = "c:/西双版纳州人口变化及其对教育的影响20240420.docx"; - List> res = ExcelKit.readChart(sourceDoc, 1); + List> res = ExcelKit.getChartData(sourceDoc, 1,0); ExcelKit.printTable(res); // for (int chartNumber = 1; chartNumber <= 37; chartNumber++) { // String xml = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml"; -// List> res = ExcelKit.readChart(xml); +// List> res = ExcelKit.getChartDataByXml(xml); // //输出转置后的数据 // System.out.println("正在输出第" + chartNumber + "个图表的数据"); // ExcelKit.printTable(res);