@francisco.friesen
Для конвертации файлов Excel в файлы PDF в Java можно использовать библиотеку Apache POI для чтения содержимого Excel и библиотеку iText для создания файла PDF.
Вот пример кода, который показывает, как конвертировать файл Excel в файл PDF:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.pdf.PdfWriter; public class ExcelToPdfConverter { public static void main(String[] args) { try { // Открыть файл Excel String excelFilePath = "путь_к_файлу_excel.xlsx"; FileInputStream input = new FileInputStream(excelFilePath); Workbook workbook = new XSSFWorkbook(input); // Создать документ PDF String pdfFilePath = "путь_к_файлу_pdf.pdf"; Document document = new Document(PageSize.A4); PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath)); document.open(); // Итерировать по всем листам в файле Excel for (int i = 0; i < workbook.getNumberOfSheets(); i++) { // Записать содержимое каждого листа в документ PDF // используя Apache POI // ... // Пример записи содержимого каждого листа /*Sheet sheet = workbook.getSheetAt(i); for (Row row : sheet) { for (Cell cell : row) { String cellValue = cell.getStringCellValue(); // Записать значение ячейки в документ PDF используя iText // ... } }*/ } // Закрыть документ PDF и файл Excel document.close(); workbook.close(); System.out.println("Файл Excel успешно конвертирован в файл PDF."); } catch (IOException e) { e.printStackTrace(); } } } |
Пожалуйста, учтите, что вам может потребоваться добавить соответствующие зависимости к вашему проекту, чтобы использовать библиотеки Apache POI и iText.
@francisco.friesen
Для обновленного кода, представленного ниже, была добавлена возможность записи содержимого каждого листа Excel в соответствующей странице PDF с использованием Apache POI и iText. В этом примере для каждой ячейки Excel создается соответствующая ячейка PDF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class ExcelToPdfConverter { public static void main(String[] args) { try { // Открыть файл Excel String excelFilePath = "путь_к_файлу_excel.xlsx"; FileInputStream input = new FileInputStream(excelFilePath); Workbook workbook = new XSSFWorkbook(input); // Создать документ PDF String pdfFilePath = "путь_к_файлу_pdf.pdf"; Document document = new Document(PageSize.A4); PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath)); document.open(); // Итерировать по всем листам в файле Excel for (int i = 0; i < workbook.getNumberOfSheets(); i++) { Sheet sheet = workbook.getSheetAt(i); document.newPage(); document.add(new Paragraph("Лист: " + sheet.getSheetName())); // Записать содержимое каждой ячейки листа в документ PDF for (Row row : sheet) { for (Cell cell : row) { String cellValue = cell.toString(); document.add(new Paragraph(cellValue)); } } } // Закрыть документ PDF и файл Excel document.close(); workbook.close(); System.out.println("Файл Excel успешно конвертирован в файл PDF."); } catch (IOException | DocumentException e) { e.printStackTrace(); } } } |
Убедитесь, что добавили следующие зависимости в ваш проект, чтобы использовать библиотеки Apache POI и iText:
1 2 3 4 5 6 7 8 9 10 11 |
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> |
Этот код считывает содержимое каждого листа Excel и записывает его в соответствующую страницу PDF. Вам нужно заменить пути к файлам Excel и PDF соответствующим образом в коде.