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

时间:2016-04-25 07:33:22

标签: java excel apache-poi xssf

我希望使用.xlsx从我的Apache POI and Java文件提取/读取图表(条形图/饼图等),然后将其另存为图像或者在我的硬盘上作为PDF

这可能吗?如果有,怎么样?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

在这种情况下可以采用的方法是使用基于COM的解决方案,使用 Com4j http://com4j.kohsuke.org/)将 Excel转换为PDF ,然后使用 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   文件(x86)\ Microsoft Office \ Office14 \ EXCEL.exe"

    我们需要3个JAR才能进行上述转换: com4j-2.1.jar tlbimp-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文件转换为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!"); }
    
  4. 干杯,

    阿克沙伊