diff --git a/Doc/全省及州市县区人口与教育报告集20241023/16个州市报告2022/分析报告20240510/昭通市人口变化及其对教育的影响20240416.docx b/Doc/全省及州市县区人口与教育报告集20241023/16个州市报告2022/分析报告20240510/昭通市人口变化及其对教育的影响20240416.docx index 1f0762d8..032bd9f6 100644 Binary files a/Doc/全省及州市县区人口与教育报告集20241023/16个州市报告2022/分析报告20240510/昭通市人口变化及其对教育的影响20240416.docx and b/Doc/全省及州市县区人口与教育报告集20241023/16个州市报告2022/分析报告20240510/昭通市人口变化及其对教育的影响20240416.docx differ 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 9109e381..694dec16 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 @@ -1,6 +1,5 @@ package com.dsideal.base.Tools.FillData.ExcelKit; -import cn.hutool.core.util.NumberUtil; import com.dsideal.base.DataEase.Model.ExcelReader; import com.jfinal.kit.StrKit; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java b/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java index 5f39e2dc..6e205afb 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Test/TestSingle.java @@ -12,36 +12,45 @@ import org.docx4j.openpackaging.exceptions.Docx4JException; import java.io.*; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; public class TestSingle { - public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, Docx4JException { String sourceWord = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510\\昭通市人口变化及其对教育的影响20240416.docx"; InputStream is = new FileInputStream(sourceWord); ZipSecureFile.setMinInflateRatio(-1.0d); XWPFDocument doc = new XWPFDocument(is); //收集图表 - List chartList = new ArrayList<>(); - int a = 0, b = 0; + Set chartSet = new HashSet<>(); for (IBodyElement element : doc.getBodyElements()) { - if (element instanceof XWPFChart) { - chartList.add((XWPFChart) element); - a++; + if (element instanceof XWPFChart chart) { + chartSet.add(chart); } - if (element instanceof XWPFParagraph sourcePara) { - XWPFChart chart = sourcePara.getDocument().getCharts().getFirst(); - b++; - if (chart != null && chart.getWorkbook() != null) chartList.add(chart); + if (element instanceof XWPFParagraph) { + for (XWPFRun run : ((XWPFParagraph) element).getRuns()) { + for (XWPFChart chart : run.getDocument().getCharts()) { + if (chart != null) { + chartSet.add(chart); + } + } + } } } - System.out.println("a=" + a + " b=" + b); - System.out.println("图表个数=" + chartList.size()); + System.out.println("图表个数=" + chartSet.size()); + //排序后的图表 + List chartList = new ArrayList<>(chartSet); + + chartList = ExcelKit.getSortListForXWPFChart(chartList); + //遍历输出 - for (XWPFChart chart : chartList) { + for (int i = 0; i < chartList.size(); i++) { + XWPFChart chart = chartList.get(i); XSSFWorkbook workbook = chart.getWorkbook(); XSSFSheet sheet = workbook.getSheetAt(0); + System.out.println("序号=" + (i + 1) + ",sheet名称=" + sheet.getSheetName()); for (Row row : sheet) { for (Cell cell : row) { System.out.print(ExcelKit.readCell(cell) + "\t");