diff --git a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx index d343ec9f..8c2ccf1a 100644 Binary files a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx and b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx differ diff --git a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx deleted file mode 100644 index 71ed919d..00000000 Binary files a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx and /dev/null differ diff --git a/pom.xml b/pom.xml index b8f79b80..916808b2 100644 --- a/pom.xml +++ b/pom.xml @@ -189,6 +189,13 @@ dom4j 2.1.4 + + + jaxen + jaxen + 1.1.6 + compile + redis.clients 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 4b57df47..88caf68b 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 @@ -91,18 +91,32 @@ public class A12 { //需要处理下人与万人的单位兼容 if (source1 != null) { + //本例中要乘以多少呢? + String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml"; + int mul = ExcelKit.getMul(xmlPath); for (List row : source1) { for (int j = 1; j <= 4; j++) { if (j + 1 > row.size()) continue; - if (Double.parseDouble(row.get(j)) < 10) { - row.set(j, String.valueOf((int) (Double.parseDouble(row.get(j)) * 10000))); - } + row.set(j, String.valueOf((int) (Double.parseDouble(row.get(j)) * mul))); } } } chartNumber = 37; List> source2 = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0); + //需要处理下平方米与万平方米的单位兼容 + if (source2 != null) { + //本例中要乘以多少呢? + String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml"; + int mul = ExcelKit.getMul(xmlPath); + for (List row : source2) { + for (int j = 1; j <= 4; j++) { + if (j + 1 > row.size()) continue; + row.set(j, String.valueOf((int) (Double.parseDouble(row.get(j)) * mul))); + } + } + } + if (source1 != null) { for (int i = 0; i < source1.size(); i++) { List row36 = source1.get(i); 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 85344321..8ac92f9e 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 @@ -12,6 +12,7 @@ import org.apache.poi.xwpf.usermodel.XWPFChart; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; +import org.dom4j.Node; import org.dom4j.io.SAXReader; import java.io.*; @@ -645,4 +646,25 @@ public class ExcelKit { } return res; } + + /** + * 获取单位 + * @param xmlPath + * @return + */ + public static int getMul(String xmlPath) { + try { + SAXReader reader = new SAXReader(); // 创建 SAXReader 对象,读取 XML 文件 + Document document = reader.read(new File(xmlPath)); + String xpath = "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:p/a:r/a:t"; + Node node = document.selectSingleNode(xpath); + String s = node.getText(); + if (s.contains("万")) return 10000; + if (s.contains("千")) return 1000; + if (s.contains("百")) return 100; + } catch (Exception err) { + System.out.println(err); + } + return 1; + } } diff --git a/src/main/java/com/dsideal/base/Tools/Test/Sample.xml b/src/main/java/com/dsideal/base/Tools/Test/Sample.xml index 30fba4ca..0f05fd30 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/Sample.xml +++ b/src/main/java/com/dsideal/base/Tools/Test/Sample.xml @@ -20,30 +20,20 @@ - - - - - - - - - - - + - + - [人口数据表.xlsx]毛入学率!$B$1 + Sheet1!$B$1 - 幼儿园 + 学前 @@ -51,7 +41,7 @@ - + @@ -62,141 +52,108 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [人口数据表.xlsx]毛入学率!$A$2:$A$10 + + Sheet1!$A$3:$A$15 General - + - 2015 + 2023 - 2016 + 2024 - 2017 + 2025 - 2018 + 2026 - 2019 + 2027 - 2020 + 2028 - 2021 + 2029 - 2022 + 2030 - 2023 + 2031 + + + 2032 + + + 2033 + + + 2034 + + + 2035 - [人口数据表.xlsx]毛入学率!$B$2:$B$10 + Sheet1!$B$3:$B$15 - General - + 0.00_ + - 57.58 + 0.14069999999999999 - 65.099999999999994 + 0.1507 - 66.25 + 0.16039999999999999 - 68.2 + 0.15959999999999999 - 68.7 + 0.15870000000000001 - 77.88 + 0.15790000000000001 - 77.77 + 0.157 - 81.17 + 0.15620000000000001 - 88.72 + 0.15540000000000001 + + + 0.1545 + + + 0.1537 + + + 0.15290000000000001 + + + 0.15210000000000001 @@ -205,16 +162,16 @@ - + - + - [人口数据表.xlsx]毛入学率!$C$1 + Sheet1!$C$1 @@ -226,7 +183,7 @@ - + @@ -237,141 +194,108 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [人口数据表.xlsx]毛入学率!$A$2:$A$10 + Sheet1!$A$3:$A$15 General - + - 2015 + 2023 - 2016 + 2024 - 2017 + 2025 - 2018 + 2026 - 2019 + 2027 - 2020 + 2028 - 2021 + 2029 - 2022 + 2030 - 2023 + 2031 + + + 2032 + + + 2033 + + + 2034 + + + 2035 - [人口数据表.xlsx]毛入学率!$C$2:$C$10 + Sheet1!$C$3:$C$15 - General - + 0.00_ + - 99.25 + 8.3099999999999993E-2 - 99.63 + 8.2500000000000004E-2 - 99.7 + 8.1500000000000003E-2 - 99.83 + 8.0699999999999994E-2 - 99.98 + 8.0199999999999994E-2 - 98.23 + 8.0199999999999994E-2 - 99.87 + 7.9799999999999996E-2 - 99.88 + 7.9399999999999998E-2 - 99.88 + 7.9000000000000001E-2 + + + 7.8600000000000003E-2 + + + 7.8100000000000003E-2 + + + 7.7700000000000005E-2 + + + 7.7299999999999994E-2 @@ -380,16 +304,16 @@ - + - + - [人口数据表.xlsx]毛入学率!$D$1 + Sheet1!$D$1 @@ -401,7 +325,7 @@ - + @@ -412,141 +336,108 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [人口数据表.xlsx]毛入学率!$A$2:$A$10 + Sheet1!$A$3:$A$15 General - + - 2015 + 2023 - 2016 + 2024 - 2017 + 2025 - 2018 + 2026 - 2019 + 2027 - 2020 + 2028 - 2021 + 2029 - 2022 + 2030 - 2023 + 2031 + + + 2032 + + + 2033 + + + 2034 + + + 2035 - [人口数据表.xlsx]毛入学率!$D$2:$D$10 + Sheet1!$D$3:$D$15 - General - + 0.00_ + - 98.87 + 4.7100000000000003E-2 - 99.09 + 4.5199999999999997E-2 - 100.38 + 4.3099999999999999E-2 - 101.07 + 4.2900000000000001E-2 - 101.08 + 4.2700000000000002E-2 - 102.08 + 4.2500000000000003E-2 - 102.09 + 4.2200000000000001E-2 - 102.1 + 4.2000000000000003E-2 - 102.1 + 4.1799999999999997E-2 + + + 4.1599999999999998E-2 + + + 4.1300000000000003E-2 + + + 4.1099999999999998E-2 + + + 4.0899999999999999E-2 @@ -555,16 +446,16 @@ - + - + - [人口数据表.xlsx]毛入学率!$E$1 + Sheet1!$E$1 @@ -576,7 +467,7 @@ - + @@ -587,141 +478,108 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [人口数据表.xlsx]毛入学率!$A$2:$A$10 + Sheet1!$A$3:$A$15 General - + - 2015 + 2023 - 2016 + 2024 - 2017 + 2025 - 2018 + 2026 - 2019 + 2027 - 2020 + 2028 - 2021 + 2029 - 2022 + 2030 - 2023 + 2031 + + + 2032 + + + 2033 + + + 2034 + + + 2035 - [人口数据表.xlsx]毛入学率!$E$2:$E$10 + Sheet1!$E$3:$E$15 - General - + 0.00_ + - 52.23 + 3.4599999999999999E-2 - 61.33 + 3.5000000000000003E-2 - 75.400000000000006 + 3.5400000000000001E-2 - 77.599999999999994 + 3.5200000000000002E-2 - 83.26 + 3.5099999999999999E-2 - 83.58 + 3.49E-2 - 89.5 + 3.4700000000000002E-2 - 90.84 + 3.4500000000000003E-2 - 90.84 + 3.4299999999999997E-2 + + + 3.4099999999999998E-2 + + + 3.4000000000000002E-2 + + + 3.3799999999999997E-2 + + + 3.3599999999999998E-2 @@ -730,13 +588,13 @@ - + - + @@ -744,11 +602,11 @@ - - + + - + @@ -780,6 +638,14 @@ + + + + + + + + @@ -846,7 +712,7 @@ - + @@ -854,19 +720,19 @@ - + - - - + - + + + @@ -894,15 +760,7 @@ - 毛入学率( - - - - % - - - - + 人数(单位:万人) @@ -936,7 +794,7 @@ - + @@ -967,12 +825,49 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -987,8 +882,8 @@ - - + + @@ -1021,7 +916,7 @@ - + diff --git a/src/main/java/com/dsideal/base/Tools/Test/TestDanWei.java b/src/main/java/com/dsideal/base/Tools/Test/TestDanWei.java new file mode 100644 index 00000000..4686ae9a --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/Test/TestDanWei.java @@ -0,0 +1,24 @@ +package com.dsideal.base.Tools.Test; + +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Node; +import org.dom4j.io.SAXReader; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.xpath.XPathExpressionException; +import java.io.File; +import java.io.IOException; + +public class TestDanWei { + public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, ParserConfigurationException, SAXException, XPathExpressionException, DocumentException { + String sourceDoc = "c:/双江县人口变化及其对教育的影响的研究报告.docx"; + ExcelKit.UnCompress(sourceDoc); + String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + 37 + ".xml"; + int mul = ExcelKit.getMul(xmlPath); + System.out.println(mul); + } +} 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 f80abb6e..119a4e26 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Test/TestOutSideExcel.java @@ -12,10 +12,11 @@ import java.util.List; public class TestOutSideExcel { + ///c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:p/a:r/a:t/text() public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, ParserConfigurationException, SAXException, XPathExpressionException, DocumentException { - String sourceDoc = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\区\\【12】新-教育资源配置发展预测\\(6.11鲁甸县)《县(区)人口变化及其对教育的影响》(4).docx"; + String sourceDoc = "c:/双江县人口变化及其对教育的影响的研究报告.docx"; //需要第几个图表 - for (int chartNumber = 4; chartNumber <= 4; chartNumber++) { + for (int chartNumber = 36; chartNumber <= 36; chartNumber++) { System.out.println("正在处理第" + chartNumber + "个图表的信息~"); //读取图表 List> list = ExcelKit.getChartData(sourceDoc, chartNumber,0);