如何将图表从Excel保存为图像/ PDF?

我想使用Apache POI and Java从我的.xlsx文件中提取/读取图表(条形图/饼图等), 并将其保存为图像或PDF格式在我的硬盘上。

这可能吗? 如果是的话,怎么样?

谢谢!

经过很多调查,显然我可以看到,使用Apache POI从Excel中提取图表是不可能的 ,并将其保存为图像或PDF。

在这种情况下可以采取的方法是使用基于COM的解决scheme使用Com4jhttp://com4j.kohsuke.org/ )将Excel转换为PDF ,然后使用Apache PDFBoxhttps://pdfbox.apache.org/ )从PDF转换为图像


下面简单介绍如何使用Com4j将Excel转换成PDF

  1. 使用以下命令从Excel生成Java类工件:

    java -jar tlbimp-2.1.jar -o wsh -p com.mycompany.excel4j“C:\ Program Files(x86)\ Microsoft Office \ Office14 \ EXCEL.exe”

    上面的转换需要3个JAR: com4j-2.1.jartlbimp-2.1.jarargs4j-2.0.8.jar

    我们可以从http://com4j.kohsuke.org/maven-com4j-plugin/dependencies.html下载相应的JAR

    有关更多信息,请参阅: http : //com4j.kohsuke.org/

  2. 将生成的Java构件复制到工作空间中,或者将其创build为JAR,并在将其添加到应用程序类path中之后使用。

  3. 使用以下片段从Java调用生成的COM API并将第一张指定的Excel文件转换为PDF(在您的计算机上相应地replaceExcel和PDF文件的以下片段中提到的path):

     public static void main(String[] args) throws Exception { _Application excelApplication = ClassFactory.createApplication(); _Workbook workbook = excelApplication .workbooks() .open("C:\\Users\\Akki\\Desktop\\MyExcel.xlsx", null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0); workbook.exportAsFixedFormat(XlFixedFormatType.xlTypePDF, "C:\\Users\\Akki\\Desktop\\MyPDF.pdf", null, null, null, null, null, null, null); workbook.close(false, null,null, 0); excelApplication.quit(); System.out.println("Converted Excel to PDF!"); } 

干杯,

阿克沙伊