如何将 excel 的图表保存为 image/PDF?

How to save chart from excel as image/PDF?

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

这可能吗?如果是,如何?

谢谢!

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

在这种情况下可以采取的方法是使用基于 COM 的解决方案,使用 Com4j (http://com4j.kohsuke.org/) to convert Excel to PDF and then use Apache PDFBox (https://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.jar, args4j-2.0.8.jar

    我们可以从 - http://com4j.kohsuke.org/maven-com4j-plugin/dependencies.html

    下载相应的 JAR

    更多信息,请参考:http://com4j.kohsuke.org/

  2. 将生成的 Java 工件复制到您的工作区或创建一个 JAR 并在将其添加到应用程序类路径后使用。

  3. 使用以下代码片段从 Java 调用生成的 COM API,并将指定 Excel 文件的第一个 sheet 转换为 PDF(在您的计算机上相应地替换路径Excel 和 PDF 文件的以下代码片段中提到:

    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!"); }
    

干杯,

阿克谢