diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx index 2315c00a..74f122f6 100644 Binary files a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx and b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx differ diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx deleted file mode 100644 index 7fc8e8f9..00000000 Binary files a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx and /dev/null differ diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java index 5be28d19..1355570d 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java @@ -1,5 +1,6 @@ package com.dsideal.base.Tools.FillData.City; +import cn.hutool.core.io.FileUtil; import com.dsideal.base.DataEase.Model.ExcelReader; import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; @@ -20,30 +21,27 @@ import java.util.Arrays; import java.util.List; public class C1 { + //开始读取市州word文档 + static String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; + //示例Excel + static String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【1】学前教育入园总量变化及预测\\学前教育入园总量变化及预测.xlsx"; public static void main(String[] args) throws IOException, InvalidFormatException { //初始化数据库连接 LocalMysqlConnectUtil.Init(); - //实例化 ReadDocxUtil ru = new ReadDocxUtil(); - //开始读取市州word文档 - String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; - - //示例Excel - String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【1】学前教育入园总量变化及预测\\学前教育入园总量变化及预测.xlsx"; - //目标Excel,就是把文件名解析出来后,后面添加上【成果】,需要动态计算获取,不能写死 String excelPath = sampleExcelPath.replace(".xlsx", "【成果】.xlsx"); ExcelKit.delExcel(excelPath); - //目标Excel + //结果Excel XSSFWorkbook outWorkbook = new XSSFWorkbook(); - //目标Sheet + //结果Sheet XSSFSheet outSheet = ExcelKit.CreateSheet(outWorkbook); - //应用样式 + //样式 XSSFCellStyle headerStyle = ExcelKit.getHeaderStyle(outWorkbook); XSSFCellStyle dataStyle = ExcelKit.getDataStyle(outWorkbook); @@ -51,7 +49,7 @@ public class C1 { ExcelKit.CopyHead(sampleExcelPath, outSheet, headerStyle); //找到parentPath下一级目录中所有文件 - File[] files = new File(parentPath).listFiles(); + List files = FileUtil.loopFiles(parentPath, file -> true); int rowIndex = 0; //处理这个目录 if (files != null) { @@ -64,12 +62,12 @@ public class C1 { //判断是否为docx文件 if (fileName.endsWith(".docx") && !fileName.startsWith("~")) { + System.out.println("正在处理" + cityName + "市州文件..."); //读取文件 String inputUrl = file.getAbsolutePath(); InputStream is = new FileInputStream(inputUrl); ZipSecureFile.setMinInflateRatio(-1.0d); XWPFDocument doc = new XWPFDocument(is); - //排序后的图表 List charts = ExcelKit.getSortListForXWPFChart(doc.getCharts()); @@ -132,13 +130,10 @@ public class C1 { } } } - System.out.println("正在处理" + cityName + "市州文件..."); } } - - FileOutputStream fileOut = new FileOutputStream(excelPath); - outWorkbook.write(fileOut); - outWorkbook.close(); + //保存文件 + 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 8c838f9e..7c12aae5 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 @@ -10,6 +10,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xwpf.usermodel.XWPFChart; import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -261,4 +263,16 @@ public class ExcelKit { } return charts; } + + /** + * 保存 + * @param excelPath + * @param outWorkbook + * @throws IOException + */ + public static void saveExcel(String excelPath, XSSFWorkbook outWorkbook) throws IOException { + FileOutputStream fileOut = new FileOutputStream(excelPath); + outWorkbook.write(fileOut); + outWorkbook.close(); + } }