diff --git a/Doc/待处理/区/【12】新-教育资源配置发展预测/【鲁甸县】新-教育资源配置发展预测.xlsx b/Doc/待处理/区/【12】新-教育资源配置发展预测/【鲁甸县】新-教育资源配置发展预测.xlsx deleted file mode 100644 index d9553a5f..00000000 Binary files a/Doc/待处理/区/【12】新-教育资源配置发展预测/【鲁甸县】新-教育资源配置发展预测.xlsx and /dev/null differ diff --git a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx new file mode 100644 index 00000000..1f505526 Binary files /dev/null and b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测.xlsx differ diff --git a/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx new file mode 100644 index 00000000..db3ed58c Binary files /dev/null and b/Doc/待处理/区/【12】新-教育资源配置发展预测/新-教育资源配置发展预测【成果】.xlsx differ 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 new file mode 100644 index 00000000..5576d99d --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A12.java @@ -0,0 +1,106 @@ +package com.dsideal.base.Tools.FillData.Area; + +import cn.hutool.core.io.FileUtil; +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; +import com.dsideal.base.Tools.Util.ReadDocxUtil; +import com.jfinal.kit.StrKit; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.File; +import java.io.IOException; +import java.util.List; + +public class A12 { + + //示例Excel + static String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\区\\【12】新-教育资源配置发展预测\\新-教育资源配置发展预测.xlsx"; + + //源文件 + static String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\133个县区报告2022\\县区研究报告"; + + //哪些是处理不了的,就不处理了~ + static String[] excludeCityList = {"~$", "磨憨-磨丁", "经开区", "阳宗海"}; + + //有好多EXCEL,啥样的有用?必须带有关键字字样的才有用! + static String fileNameKey = "人口变化及其对教育的影响"; + + + public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException { + //初始化数据库连接 + LocalMysqlConnectUtil.Init(); + //实例化 + ReadDocxUtil ru = new ReadDocxUtil(); + + //结果Excel + XSSFWorkbook outWorkbook = new XSSFWorkbook(); + //结果Sheet + XSSFSheet outSheet = ExcelKit.CreateSheet(outWorkbook); + //样式 + XSSFCellStyle headerStyle = ExcelKit.getHeaderStyle(outWorkbook); + XSSFCellStyle dataStyle = ExcelKit.getDataStyle(outWorkbook); + //如果样例文件是xls格式,则转化为xlsx格式 + sampleExcelPath = ExcelKit.ConvertXlsToXlsx(sampleExcelPath); + //拷贝文件头 + ExcelKit.CopyHead(sampleExcelPath, outSheet, headerStyle); + + //目标Excel,就是把文件名解析出来后,后面添加上【成果】,需要动态计算获取,不能写死 + String excelPath = sampleExcelPath.replace(".xlsx", "【成果】.xlsx"); + ExcelKit.delExcel(excelPath); + + //找到parentPath下一级目录中所有文件 + List 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(".docx") || file.getName().startsWith("~")) + 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 + "的数据填充~"); + int chartNumber = 36; + List> source36 = + ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 6);//从2017年开始 + + chartNumber = 37; + List> source37 = + ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 6);//从2017年开始 + + } + } + //保存文件 + 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 cd45a955..df08481c 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 @@ -355,6 +355,11 @@ public class ExcelKit { XWPFDocument doc = new XWPFDocument(is); //排序后的图表 List charts = ExcelKit.getSortListForXWPFChart(doc.getCharts()); + + if (charts.size() < chartNumber + 1) { + System.out.println(docPath + ",没有第" + (chartNumber + 1) + "个图表,请检查!"); + return null; + } XSSFWorkbook workbook = charts.get(chartNumber).getWorkbook(); List> data = ExcelKit.readSheet(workbook, skipRowCount); is.close();