Как сохранить график из Excel в виде изображения /PDF?

Я хочу извлечь / прочитать диаграмму (гистограмму / круговую диаграмму и т. Д.) Из моего .xlsx использование файла Apache POI and Java и сохранить его в виде изображения или в формате PDF на моем жестком диске.

Это возможно? Если да, то как?

Спасибо!

1 ответ

Решение

После долгих исследований, по-видимому, я вижу, что невозможно извлечь диаграммы из Excel с помощью Apache POI и сохранить их в виде изображения или в формате PDF.

Подход, который можно использовать в этой ситуации, заключается в использовании решения на основе COM с использованием Com4j ( http://com4j.kohsuke.org/) для преобразования Excel в PDF и последующего использования Apache PDFBox ( https://pdfbox.apache.org/). конвертировать из PDF в изображение.


Ниже приводятся краткие сведения о том, как использовать Com4j для программного преобразования Excel в PDF:

  1. Генерация артефактов классов Java из Excel с помощью следующей команды:

    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.jar, tlbimp-2.1.jar, args4j-2.0.8.jar

    Мы можем скачать соответствующие JAR-файлы с - http://com4j.kohsuke.org/maven-com4j-plugin/dependencies.html

    Для получения дополнительной информации см.: http://com4j.kohsuke.org/

  2. Скопируйте сгенерированные Java-артефакты в рабочее пространство или создайте их JAR-файл и используйте после добавления в путь к классу приложения.

  3. Используйте следующий фрагмент для вызова сгенерированных COM API из Java и преобразования первого листа указанного файла 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!"); }
    

Ура,

Акшай

Другие вопросы по тегам