From 2601ae2fddaef6bd01e85a67b5967851d40b89a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Sat, 16 Nov 2024 10:23:53 +0800 Subject: [PATCH] 'commit' --- ...县】终-人口总体情况(万人).xlsx | Bin 9920 -> 0 bytes .../dsideal/base/Tools/FillData/Area/A7.java | 139 ++++++++++++++++++ .../Tools/FillData/ExcelKit/ExcelKit.java | 1 - .../base/Tools/FillData/Test/TestAspose.java | 27 ---- 4 files changed, 139 insertions(+), 28 deletions(-) delete mode 100644 Doc/待处理/区/【7】终-人口总体情况/【鲁甸县】终-人口总体情况(万人).xlsx create mode 100644 src/main/java/com/dsideal/base/Tools/FillData/Area/A7.java delete mode 100644 src/main/java/com/dsideal/base/Tools/FillData/Test/TestAspose.java diff --git a/Doc/待处理/区/【7】终-人口总体情况/【鲁甸县】终-人口总体情况(万人).xlsx b/Doc/待处理/区/【7】终-人口总体情况/【鲁甸县】终-人口总体情况(万人).xlsx deleted file mode 100644 index afbfac745fe3ef62efd6ca5732312e77073a655a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9920 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�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 BCs6 files = FileUtil.loopFiles(parentPath, file -> true); + int rowIndex = 0; + + //处理这个目录 + if (files != null) { + for (File file : files) { + //判断file是不是目录,是目录的需要跳过 + if (file.isDirectory()) continue; + if (!file.getName().endsWith(".xlsx") && !file.getName().endsWith(".xls")) + continue; + boolean flag = false; + for (String s : excludeCityList) { + if (file.getName().contains(s)) { + flag = true; + break; + } + } + if (flag) continue; + //只关心发展规模数据的表格 + if (!file.getName().contains(fileNameKey)) continue; + //县区名称 + String areaName = ru.getCityOrAreaName(file.getName()); + //市州名称 + //此文件的路径中最后一层的目录名称,应该是带着市州名称 ,把最后一层子目录的名称提出 + String parentPathName = file.getParentFile().getName(); + String cityName = ru.getCityOrAreaName(parentPathName); + if (StrKit.isBlank(cityName) || cityName.equals(areaName)) { + parentPathName = file.getParentFile().getParentFile().getName(); + cityName = ru.getCityOrAreaName(parentPathName); + } + + if (StrKit.isBlank(cityName) || StrKit.isBlank(areaName)) { + System.out.println("发现异常数据,请人工处理:" + file.getName()); + System.exit(0); + } + + //县区名称 + System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~"); + String sourceExcel = file.getAbsolutePath(); + List> dataList = ExcelKit.readSecondTable(sourceExcel, 0, tableKeyword, + tableHeadRows, tableLetterIndex); + + //取出第一行 + if (dataList.isEmpty()) continue; + + //入园总数 + for (List stringList : dataList) { + //年份 + int year = Integer.parseInt(stringList.getFirst()); + //总人口 + String zrk = stringList.get(ExcelKit.transLetter2Num("B")).split("\\.")[0]; + //城镇人口 + String cz = stringList.get(ExcelKit.transLetter2Num("C")).split("\\.")[0]; + //乡村人口 + String xc = stringList.get(ExcelKit.transLetter2Num("D")).split("\\.")[0]; + + Row outRow = outSheet.createRow(++rowIndex); + ExcelKit.putData(outRow, Arrays.asList(areaName, "总人口", zrk, "人", cityName), dataStyle); + + ExcelKit.putData(outRow, Arrays.asList(areaName, "新生人口", "0", "人", cityName), dataStyle); + + ExcelKit.putData(outRow, Arrays.asList(areaName, "城镇人口", cz, "人", cityName), dataStyle); + + ExcelKit.putData(outRow, Arrays.asList(areaName, "乡村人口", xc, "人", cityName), dataStyle); + + //保留两位小数 + ExcelKit.putData(outRow, Arrays.asList(areaName, "城镇化率", + String.format("%.2f", Double.parseDouble(cz) / Double.parseDouble(zrk) * 100) + "%", "人", cityName), dataStyle); + } + + } + } + //保存文件 + ExcelKit.saveExcel(excelPath, outWorkbook); + System.out.println("县区所有文件处理完成!"); + } +} 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 275e4b4a..5e790360 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 @@ -13,7 +13,6 @@ import org.apache.poi.xwpf.usermodel.XWPFChart; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.*; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestAspose.java b/src/main/java/com/dsideal/base/Tools/FillData/Test/TestAspose.java deleted file mode 100644 index c4b03af7..00000000 --- a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestAspose.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dsideal.base.Tools.FillData.Test; - -import com.aspose.words.*; -import com.aspose.words.Chart; -import com.aspose.words.ChartType; -import com.aspose.words.Shape; - -public class TestAspose { - - public static void main(String[] args) throws Exception { - String sourceWord = "c:/西双版纳州人口变化及其对教育的影响20240420.docx"; - - Document doc = new Document(); - DocumentBuilder builder = new DocumentBuilder(doc); - - // Insert a chart shape with a document builder and get its chart. - Shape chartShape = builder.insertChart(ChartType.BAR, 400.0, 300.0); - Chart chart = chartShape.getChart(); - - ChartTitle title = chart.getTitle(); - title.setText("My Chart"); - title.setShow(true); - title.setOverlay(true); - - doc.save( "c:/Charts.ChartTitle.docx"); - } -}