main
黄海 8 months ago
parent 4cec411b5f
commit 2337d40e49

@ -189,6 +189,13 @@
<artifactId>dom4j</artifactId>
<version>2.1.4</version>
</dependency>
<!--需要支持dom4j解析xpath使用下面的包-->
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>

@ -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<String> 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<List<String>> 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<String> 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<String> row36 = source1.get(i);

@ -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;
}
}

File diff suppressed because it is too large Load Diff

@ -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);
}
}

@ -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<String>> list = ExcelKit.getChartData(sourceDoc, chartNumber,0);

Loading…
Cancel
Save