Как сохранить график из 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:
Генерация артефактов классов 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/
Скопируйте сгенерированные Java-артефакты в рабочее пространство или создайте их JAR-файл и используйте после добавления в путь к классу приложения.
Используйте следующий фрагмент для вызова сгенерированных 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!"); }
Ура,
Акшай