package com.dsideal.base.Tools.Test; import cn.hutool.core.io.FileUtil; import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.poi.xwpf.usermodel.XWPFChart; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; public class TestBadExcel { //开始读取市州word文档 static String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; //示例Excel static String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【11】教育资源配置发展预测\\教育资源配置发展预测(人).xlsx"; public static void main(String[] args) throws IOException, InvalidFormatException { //初始化数据库连接 LocalMysqlConnectUtil.Init(); //实例化 ReadDocxUtil ru = new ReadDocxUtil(); //找到parentPath下一级目录中所有文件 List files = FileUtil.loopFiles(parentPath, file -> true); int rowIndex = 0; //处理这个目录 if (files != null) { for (File file : files) { //判断file是不是目录,是目录的需要跳过 if (file.isDirectory()) continue; //城市名称 String cityName = ru.getCityName(file.getName()); String fileName = file.getName(); //判断是否为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()); //数据在图表36,教职工总量 int firstChartNumber = 36; if(cityName.contains("西双版纳州")){ System.out.println("he"); } charts.get(firstChartNumber - 1).getWorkbook(); } } } } }