JavaでExcelをPDFに変換

Java では、Apache POI ライブラリを使用して Excel ファイルを処理し、iText ライブラリを使用して Excel ファイルを PDF 形式に変換できます。

Apache POI は、Java 開発者が Excel、Word、PowerPoint などの Microsoft Office 形式のファイルを処理できるようにする Java ライブラリです。「POI」は「Poor Obfuscation Implementation」の略で、Microsoft の OLE2 ファイル形式を解析および操作するためのツールです。

Apache POI は、さまざまな Office ファイルの内容とプロパティを読み取り、書き込み、操作できるクラスとメソッドを多数提供します。次の 2 つの主要な Office ファイル形式をサポートしています。

  1. HSSF (Horrible Spreadsheet Format): これは、Excel ファイル (.xls 形式) を処理するための POI サブプロジェクトです。古いバージョンの Excel ファイル (Excel 97-2003) の読み取りと書き込みが可能になります。

  2. XSSF (XML スプレッドシート形式): これは、Excel ファイル (.xlsx 形式) を処理するための POI サブプロジェクトです。新しいバージョンの Excel ファイル (Excel 2007 以降) の読み取りと書き込みが可能になります。

主な機能は次のとおりです。

  1. Excel ファイルの読み取りと書き込み: Apache POI を使用すると、Excel ファイルのコンテンツ、セル値、数式、スタイルなどを読み取ることができます。また、Apache POI を使用して、新しい Excel ファイルを作成し、データを入力することもできます。

  2. Excel グラフの操作: Apache POI を使用して、Excel ファイル内のグラフを作成、変更、削除できます。

  3. Excel 式の処理: Apache POI は、Excel セル内の式の処理とその結果の計算をサポートします。

  4. セルのスタイルを設定する: Apache POI を使用して、セルのフォント、色、配置などのスタイル属性を設定できます。

  5. Excel イベント モデルの処理: Apache POI は、ファイル全体をメモリにロードせずに大きな Excel ファイルをストリーミングできるイベント モデルも提供します。

  6. Word と PowerPoint のサポート: Excel に加えて、Apache POI は Word ドキュメント (.doc および .docx 形式) および PowerPoint プレゼンテーション (.ppt および .pptx 形式) の読み取りと書き込みもサポートします。

Apache POI は強力で広く使用されている Java ライブラリであり、Microsoft Office ファイル形式を処理する必要がある Java アプリケーション開発に非常に役立ちます。Apache Foundation プロジェクトであるため、安定した開発および保守サポートも提供されています。

 以下は、これら 2 つのライブラリを使用して Excel ファイルを PDF 形式ファイルに変換する方法を示す簡単なサンプル コードです。

依存関係を追加する: まず、プロジェクトに次の 2 つのライブラリの依存関係を追加してください。

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

<!-- iText PDF -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.2</version>
</dependency>

Excel を PDF に変換する Java コード:

import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;

public class ExcelToPdfConverter {

    public static void convertExcelToPdf(String inputExcelPath, String outputPdfPath) {
        try {
            // Load Excel file
            FileInputStream fis = new FileInputStream(new File(inputExcelPath));
            Workbook workbook = new XSSFWorkbook(fis);

            // Create PDF document
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(outputPdfPath));
            document.open();

            // Read data from Excel and write to PDF
            Sheet sheet = workbook.getSheetAt(0); // Assuming data is on the first sheet
            for (Row row : sheet) {
                for (Cell cell : row) {
                    String cellValue = cell.getStringCellValue(); // You can customize this based on cell type
                    document.add(new com.itextpdf.text.Paragraph(cellValue));
                }
            }

            // Close resources
            document.close();
            workbook.close();
            fis.close();

            System.out.println("Conversion completed successfully.");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String inputExcelPath = "path/to/your/input/excel.xlsx";
        String outputPdfPath = "path/to/your/output/pdf.pdf";

        convertExcelToPdf(inputExcelPath, outputPdfPath);
    }
}

この例では、Apache POI を使用して Excel ファイルのコンテンツを読み取り、iText ライブラリを使用してコンテンツを PDF ファイルに書き込みます。inputExcelPath変数とoutputPdfPath変数を実際の入力 Excel ファイル パスと出力 PDF ファイル パスに置き換えてください。

この例では、入力 Excel ファイルに単一のワークシートがあることを前提としていますが、複数のワークシートがある場合やその他の特殊なケースがある場合は、ニーズに合わせてコードを調整する必要がある場合があることに注意してください。

Apache POI は、Excel、Word、PowerPoint などの Microsoft Office 形式のファイルを処理するための Java 用の強力なライブラリです。Office ファイルの読み取り、書き込み、操作の機能を提供し、古いバージョンの Excel (.xls 形式) と新しいバージョンの Excel (.xlsx 形式) ファイルをサポートします。主な機能には、Excel ファイルの内容の読み取りと書き込み、Excel グラフの処理、Excel 数式の処理、セル スタイルの設定、Word および PowerPoint ドキュメントのサポートが含まれます。

Apache POI は、メモリをあまり消費せずに大きな Excel ファイルをストリーミング方式で処理できるイベント モデルも提供します。その安定性と広く使用されているため、Java 開発者が Office ファイル形式を操作するための推奨ツールの 1 つとなっています。

全体として、Apache POI は、Microsoft Office ファイルと対話する必要があるアプリケーションを開発するための非常に便利な Java ライブラリであり、Java 開発者に多くの便利な機能を提供します。

おすすめ

転載: blog.csdn.net/weixin_45934981/article/details/131919224