Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java excel转pdf


在 Java 中,将 Excel 文件转换为 PDF 可以使用多种方式。以下是几种常见的实现方式,每种方式都包含详细的步骤流程和示例代码。

注意:以下示例代码中的依赖版本可能已过时,建议根据实际情况选择更新的版本。

Apache POI + iText

Apache POI 用于读取 Excel 文件,iText 用于生成 PDF 文件。

步骤流程:

  1. 使用 Apache POI 读取 Excel 数据。
  2. 使用 iText 将读取的数据生成 PDF。

Maven 依赖:

<!-- Apache POI -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>

<!-- iText -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.1.16</version>
</dependency>

示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelToPdfConverter {

    public static void main(String[] args) throws IOException {
        String excelFilePath = "input.xlsx";
        String pdfFilePath = "output.pdf";

        // Read Excel
        FileInputStream excelFile = new FileInputStream(excelFilePath);
        Workbook workbook = new XSSFWorkbook(excelFile);
        Sheet sheet = workbook.getSheetAt(0);

        // Create PDF
        PdfWriter writer = new PdfWriter(new FileOutputStream(pdfFilePath));
        PdfDocument pdfDocument = new PdfDocument(writer);
        Document document = new Document(pdfDocument);

        for (Row row : sheet) {
            for (Cell cell : row) {
                String cellValue = cell.toString();
                document.add(new Paragraph(cellValue));
            }
        }

        document.close();
        pdfDocument.close();
        workbook.close();

        System.out.println("Excel converted to PDF successfully!");
    }
}

JExcelApi + iText

JExcelApi 用于读取 Excel 文件,iText 用于生成 PDF 文件。

步骤流程:

  1. 使用 JExcelApi 读取 Excel 数据。
  2. 使用 iText 将读取的数据生成 PDF。

Maven 依赖:

<!-- JExcelApi -->
<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

<!-- iText (同上) -->

示例代码:

import jxl.*;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelToPdfConverter {

    public static void main(String[] args) throws IOException, RowsExceededException, WriteException {
        String excelFilePath = "input.xls";
        String pdfFilePath = "output.pdf";

        // Read Excel
        WorkbookSettings settings = new WorkbookSettings();
        settings.setSuppressWarnings(true);
        Workbook workbook = Workbook.getWorkbook(new FileInputStream(excelFilePath), settings);
        Sheet sheet = workbook.getSheet(0);

        // Create PDF
        PdfWriter writer = new PdfWriter(new FileOutputStream(pdfFilePath));
        PdfDocument pdfDocument = new PdfDocument(writer);
        Document document = new Document(pdfDocument);

        for (int row = 0; row < sheet.getRows(); row++) {
            for (int col = 0; col < sheet.getColumns(); col++) {
                String cellValue = sheet.getCell(col, row).getContents();
                document.add(new Paragraph(cellValue));
            }
        }

        document.close();
        pdfDocument.close();
        workbook.close();

        System.out.println("Excel converted to PDF successfully!");
    }
}

这里提供了两种不同的实现方式,你可以根据项目需求和偏好选择适合的方式。

将PDF转换为Excel可以通过多种方式实现,其中一些常见的方式包括使用ApachePDFBox和使用iText库。同样,您需要使用Apac ...
在Java中将Excel转换为图片有多种实现方式,下面我会为你列出其中几种常见的方式,并为每种方式提供详细的步骤流程和示例代码。示例代码:# ...
在Java中将HTML转换为PDF有几种实现方式,包括使用第三方库和工具。步骤流程:添加依赖:Maven依赖:Gradle依赖:编写代码:# ...
在Java中将PDF转换为HTML有多种实现方式,下面我将介绍两种常用的方式,并提供相应的代码示例以及所需的依赖坐标。js依赖:使用Java ...
###方式一:使用iText库iText是一个流行的Java库,用于创建和操作PDF文件。Maven依赖:Gradle依赖:示例代码:### ...