kgdxpr 8 months ago
commit 21d3101417

@ -110,7 +110,8 @@ public class A8 {
String v = String.format("%.2f", (x > 1000 ? x / 10000 : x));//如果数值大于1000则计算以万为单位否则就保留原来的数字
if (Integer.parseInt(year) <= 2023) {
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, v, ""), dataStyle);
} else {
}
if (Integer.parseInt(year) >= 2023) {
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, "", v), dataStyle);
}
}

@ -88,7 +88,7 @@ public class A9 {
System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~");
int chartNumber = 2;
List<List<String>> source1 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber , 0);
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
//需要处理下人与万人的单位兼容
@ -105,20 +105,23 @@ public class A9 {
if (StrKit.isBlank(q1)) {
q1 = "0";
}
String v1 = String.format("%.2f", Double.parseDouble(q1) * mul / 10000);
double x = Double.parseDouble(q1) * mul;
String v1 = String.format("%.2f", (x > 1000 ? x / 10000 : x));
String q2 = row.get(2);
if (StrKit.isBlank(q2)) {
q2 = "0";
}
String v2 = String.format("%.2f", Double.parseDouble(q2) * mul / 10000);
x = Double.parseDouble(q2) * mul;
String v2 = String.format("%.2f", (x > 1000 ? x / 10000 : x));
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, v1, "", v2, ""), dataStyle);
}
}
chartNumber = 3;
List<List<String>> source2 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber , 0);
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
if (source2 != null) {
//本例中要乘以多少呢?
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml";
@ -137,7 +140,8 @@ public class A9 {
if (StrKit.isBlank(q2)) {
q2 = "0";
}
String v2 = String.format("%.2f", Double.parseDouble(q2) * mul / 10000);
double x = Double.parseDouble(q2) * mul;
String v2 = String.format("%.2f", (x > 1000 ? x / 10000 : x));
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, "", v1, "", v2), dataStyle);
}
}

@ -1,5 +1,6 @@
package com.dsideal.base.Tools.FillData.ExcelKit;
import cn.hutool.core.io.FileUtil;
import com.dsideal.base.DataEase.Model.ExcelReader;
import com.jfinal.kit.StrKit;
import org.apache.commons.io.FileUtils;
@ -649,22 +650,15 @@ public class ExcelKit {
/**
*
*
* @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);
}
String s = FileUtil.readUtf8String(xmlPath);
if (s.contains("万")) return 10000;
if (s.contains("千")) return 1000;
if (s.contains("百")) return 100;
return 1;
}
}

@ -15,9 +15,9 @@ 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";
String sourceDoc = "c:/个旧市人口变化及其对教育的影响(定稿).docx";
ExcelKit.UnCompress(sourceDoc);
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + 37 + ".xml";
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + 2 + ".xml";
int mul = ExcelKit.getMul(xmlPath);
System.out.println(mul);
}

Loading…
Cancel
Save