JavaでPDFをExcelに変換し、その書式を保持する方法

PDFからExcelへの変換には多くの理由があります。おそらく最も重要な理由は、Microsoft Excelが提供するデータ計算、視覚化、分析ツールを使用して、PDF内のデータを簡単に操作および分析することができるということです。例えば、データに数式を使用したり、データに基づいてグラフを作成したり、データに条件付き書式を適用したり、その他にもさまざまなことが可能です。今回は、無料の[Free Spire.XLS for PDF](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)を使用して、プログラムで**PDFをExcelに変換し**、**その書式を維持する方法**を説明します。
- **[PDFをExcelに変換し、その書式を維持する](#pdfをexcelに変換しその書式を維持する)**
- **[複数ページのPDFを単一のExcelワークシートに変換する](#複数ページのpdfを単一のexcelワークシートに変換する)**
## 【依存関係の追加】
この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
```XML
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
```
### 2. 公式サイトよりJarファイルをダウンロード
まず、[Free Spire.PDF for Java](https://jp.e-iceblue.com/download/free-spire-pdf-for-java.html)の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Pdf.jarファイルを依存関係としてプロジェクトにインポートしてください。
## PDFをExcelに変換し、その書式を維持する
Free Spire.PDF for Java の **PdfDocument.saveToFile(String, FileFormat)** メソッドは、PDFドキュメントを他のファイル形式に変換するために使用されます。このメソッドを使用して、FileFormatをXLSXとして指定することにより、PDFを書式付きExcelに簡単に変換することができます。
以下は、その詳細な手順です。
- **PdfDocument**クラスのインスタンスを生成します。
- **PdfDocument.loadFromFile()** メソッドを使用してPDFドキュメントを読み込みます。
- **PdfDocument.saveToFile(String, FileFormat)** メソッドを使用してPDFドキュメントをExcel XLSX形式に保存します。

**Java**
```Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

public class convertPdfToExcel {
    public static void main(String[] args) {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("貸借対照表.pdf");

        //PDFファイルをXLSX形式に保存する
        pdf.saveToFile("PDFからExcelへの変換.xlsx", FileFormat.XLSX);

    }
}
```
**【出力されたエクセルのワークブック】**
![PDFをExcelに変換し、その書式を維持する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/26108b87-3fb0-eca0-110b-7b4ae712c822.png)

## 複数ページのPDFを単一のExcelワークシートに変換する
複数のページを持つPDF文書を1つのExcelワークシートに変換したい場合、**PdfDocument.getConvertOptions().setPdfToXlsxOptions()** メソッドを使用してPDFからXLSXへの変換オプションを設定し、**PdfDocument.saveToFile(String, FileFormat)** メソッドを呼び出してPDFから指定オプションでXLSXフォーマットに変換することが可能です。
以下は、その詳細な手順です。
- **PdfDocument**クラスのインスタンスを生成します。
- **PdfDocument.loadFromFile()** メソッドを使用して PDF ドキュメントを読み込みます。
- **PdfDocument.getConvertOptions().setPdfToXlsxOptions()** メソッドを使用して、PDFからXLSXへの変換オプションを設定します。
- **PdfDocument.saveToFile(String, FileFormat)** メソッドを使用して、PDFドキュメントをExcelのXLSX形式に保存します。

**Java**
```Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.conversion.XlsxLineLayoutOptions;

public class convertMultiPagePdfToSingleExcelWorksheet {
    public static void main(String[] args) throws Exception {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("貸借対照表.pdf");

        //PDFからXLSXへの変換オプションの設定：1つのワークシートに複数ページをレンダリングする
        pdf.getConvertOptions().setPdfToXlsxOptions(new XlsxLineLayoutOptions(false,true,true));

        //PDFドキュメントをXLSX形式に保存する
        pdf.saveToFile("PDFから1つのシートへの変換.xlsx", FileFormat.XLSX);
    }
}
```
**【出力されたエクセルのワークブック】**
![複数ページのPDFを単一のExcelワークシートに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/fc1ac506-bbf4-efe1-2276-43859ff13c4f.png)

> **この記事は、Spire.PDF for Java APIを使用して、PDFをExcelに変換する方法と同様に、複数ページのPDFを単一のシートのExcelに変換する方法を示しています。PDFからExcelへの変換とは別に、FileFormatをDOCX、HTML、PPTXとして指定することにより、PDFをDOCX、HTML、PPTXのような他の様々なファイル形式に変換するためにAPIを使用することもできます。**