kgdxpr 8 months ago
commit 21d3101417

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

@ -88,7 +88,7 @@ public class A9 {
System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~"); System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~");
int chartNumber = 2; int chartNumber = 2;
List<List<String>> source1 = 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)) { if (StrKit.isBlank(q1)) {
q1 = "0"; 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); String q2 = row.get(2);
if (StrKit.isBlank(q2)) { if (StrKit.isBlank(q2)) {
q2 = "0"; 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); ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, v1, "", v2, ""), dataStyle);
} }
} }
chartNumber = 3; chartNumber = 3;
List<List<String>> source2 = List<List<String>> source2 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber , 0); ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
if (source2 != null) { if (source2 != null) {
//本例中要乘以多少呢? //本例中要乘以多少呢?
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml"; String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml";
@ -137,7 +140,8 @@ public class A9 {
if (StrKit.isBlank(q2)) { if (StrKit.isBlank(q2)) {
q2 = "0"; 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); ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, "", v1, "", v2), dataStyle);
} }
} }

@ -1,5 +1,6 @@
package com.dsideal.base.Tools.FillData.ExcelKit; package com.dsideal.base.Tools.FillData.ExcelKit;
import cn.hutool.core.io.FileUtil;
import com.dsideal.base.DataEase.Model.ExcelReader; import com.dsideal.base.DataEase.Model.ExcelReader;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
@ -649,22 +650,15 @@ public class ExcelKit {
/** /**
* *
*
* @param xmlPath * @param xmlPath
* @return * @return
*/ */
public static int getMul(String xmlPath) { public static int getMul(String xmlPath) {
try { String s = FileUtil.readUtf8String(xmlPath);
SAXReader reader = new SAXReader(); // 创建 SAXReader 对象,读取 XML 文件 if (s.contains("万")) return 10000;
Document document = reader.read(new File(xmlPath)); if (s.contains("千")) return 1000;
String xpath = "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:p/a:r/a:t"; if (s.contains("百")) return 100;
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; return 1;
} }
} }

@ -15,9 +15,9 @@ import java.io.IOException;
public class TestDanWei { public class TestDanWei {
public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, ParserConfigurationException, SAXException, XPathExpressionException, DocumentException { 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); 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); int mul = ExcelKit.getMul(xmlPath);
System.out.println(mul); System.out.println(mul);
} }

Loading…
Cancel
Save