|
|
|
@ -28,36 +28,38 @@ public class TestSingle {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException, Docx4JException {
|
|
|
|
|
|
|
|
|
|
String sourceWord = "c:/1.docx";
|
|
|
|
|
|
|
|
|
|
//String sourceWord = "c:/1.docx";
|
|
|
|
|
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<XWPFChart> charts = ExcelKit.getSortListForXWPFChart(doc.getCharts());
|
|
|
|
|
System.out.println("图表个数=" + charts.size());
|
|
|
|
|
|
|
|
|
|
List<XWPFChart> Mycharts = new ArrayList<>();
|
|
|
|
|
//收集图表
|
|
|
|
|
List<XWPFChart> chartList = new ArrayList<>();
|
|
|
|
|
for (IBodyElement element : doc.getBodyElements()) {
|
|
|
|
|
if (element instanceof XWPFChart) {
|
|
|
|
|
Mycharts.add((XWPFChart) element);
|
|
|
|
|
chartList.add((XWPFChart) element);
|
|
|
|
|
}
|
|
|
|
|
if (element instanceof XWPFParagraph sourcePara) {
|
|
|
|
|
XWPFChart chart = sourcePara.getDocument().getCharts().getFirst();
|
|
|
|
|
XSSFWorkbook workbook = chart.getWorkbook();
|
|
|
|
|
System.out.println(workbook.getSheetAt(0).getSheetName());
|
|
|
|
|
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
|
|
|
for (Row row : sheet) {
|
|
|
|
|
for (Cell cell : row) {
|
|
|
|
|
System.out.print(ExcelKit.readCell(cell)+"\t");
|
|
|
|
|
}
|
|
|
|
|
System.out.println();
|
|
|
|
|
if (chart != null && chart.getWorkbook()!=null) chartList.add(chart);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//先排序
|
|
|
|
|
// List<XWPFChart> orderChartList = ExcelKit.getSortListForXWPFChart(chartList);
|
|
|
|
|
System.out.println("图表个数=" + chartList.size());
|
|
|
|
|
//遍历输出
|
|
|
|
|
for (XWPFChart chart : chartList) {
|
|
|
|
|
XSSFWorkbook workbook = chart.getWorkbook();
|
|
|
|
|
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
|
|
|
for (Row row : sheet) {
|
|
|
|
|
for (Cell cell : row) {
|
|
|
|
|
System.out.print(ExcelKit.readCell(cell) + "\t");
|
|
|
|
|
}
|
|
|
|
|
// System.out.println(workbook.getSheetAt(0).getPhysicalNumberOfRows());
|
|
|
|
|
// System.out.println(workbook.getSheetAt(0).getRow(0).getCell(1).getStringCellValue());
|
|
|
|
|
System.out.println();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//System.out.println("图表个数=" + charts.size());
|
|
|
|
|
//关闭流
|
|
|
|
|
is.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|