【Java】ExcelをHTMLに変換する方法

Excelのスプレッドシートは、データの整理、管理、計算のための便利なツールです。HTMLは、ウェブブラウザを通してコンテンツを提示する際に同様の役割を果たします。状況によっては、ワークシートをHTMLページに変換するために、ExcelからHTMLへの変換を保存する必要がある場合があります。例えば、スプレッドシートの内容をウェブページに埋め込む場合などです。HTMLページは、簡単に共有し、Webブラウザを介してアクセスすることができ、HTMLページはまた、ユーザーがWebページ上で直接データを入力または操作することができ、インタラクティブにすることができますので、共同プロジェクトやオンライン調査のために有用である。この記事では、無料の[Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-xls-for-java.html)を使ってExcelファイルをHTMLに変換する方法を、次の3つのパートから紹介します。
- **[ExcelをHTMLに変換する](#excelをhtmlに変換する)**
- **[Excelを単一のHTMLファイルに変換する](#excelを単一のhtmlファイルに変換する)**
- **[ExcelをHTMLストリームに変換する](#excelをhtmlストリームに変換する)**
## 【依存関係の追加】
この方法は、無料のFree Spire.XLS 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.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
```
### 2. 公式サイトよりJarファイルをダウンロード
まず、[Free Spire.XLS for Java](https://jp.e-iceblue.com/download/free-spire-excel-for-java.html)の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。
## ExcelをHTMLに変換する
Free Spire.XLS for Javaでは、**Workbook.saveToFile()** メソッドでExcelワークブックをHTMLファイルに変換することができます。ここでは、XLSXファイルをHTMLファイルに変換する手順を説明します。
- **Workbook** のインスタンスを作成します。
- **Workbook.loadFromFile()** メソッドを使用して Excel ファイルを読み込みます。
- **Workbook.saveToFile()** メソッドを使用して、ファイルを HTML に保存します。

**Java**
```Java
import com.spire.xls.*;

public class ExceltoHTML {
    public static void main(String[] args) throws Exception {
        //Load an Excel file
        Workbook wb = new Workbook();
        wb.loadFromFile("Sample.xlsx");

//Save the file to HTML
        wb.saveToFile("WorkbookToHtml.html",FileFormat.HTML);
    }
}
```
![ExcelをHTMLに変換する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/55c890ef-0b79-b163-4264-7da3d969208d.png)

## Excelを単一のHTMLファイルに変換する
Free Spire.XLS for Javaは、画像を埋め込んだり、Excelを単一のHTMLファイルに変換するための**HTMLOptions**クラスを提供しています。次のステップでは、ExcelのワークシートをHTMLファイルとして保存する方法を説明します。
- **Workbook** のインスタンスを作成し、**Workbook.loadFromFile()** メソッドを使用して Excel ファイルを読み込みます。
- **Workbook.getWorksheets().get()** メソッドで最初のワークシートを取得します。
- **HTMLOptions** のインスタンスを作成します。
- **HTMLOptions.setImageEmbedded()** メソッドを使用して、画像の埋め込みを有効にします。
- **HTMLOptions.isStandAloneHtmlFile()** メソッドを使用して、HTMLをスタンドアロンHTMLファイルとして設定します。
- **Worksheet.saveToHtml(String,HTMLOptions)** メソッドを使用して、画像を埋め込んだ状態でワークシートをHTMLに保存します。

**Java**
```Java
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.HTMLOptions;

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

                //Load the sample document
                Workbook wb = new Workbook();
                wb.loadFromFile("Sample.xlsx");

                //Get the first worksheet
                 Worksheet sheet = wb.getWorksheets().get(0);

                 //Initiate a HTMLOptions instance
                 HTMLOptions options = new HTMLOptions();

                 //Set embedded image as true
                 options.setImageEmbedded(true);

                 //Set is StandaloneHTML file as true
                 options.isStandAloneHtmlFile(true);

                 //Save the worksheet to HTML
                 sheet.saveToHtml("Result2.html", options);
            }
}
```
![Excelを単一のHTMLファイルに変換する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/c09b0f2e-1494-f086-4f6e-f685da62f296.png)

## ExcelをHTMLストリームに変換する
Free Spire.XLS for Javaは、ExcelをHTMLストリームに保存する **Workbook.saveToStream()** メソッドを提供します。ファイルはディスクに保存することなく、メモリに直接保存することができます。大量のファイルを扱う場合、非常に便利です。変換されたファイルは、ネットワークやメモリー、他のデバイスに簡単に送ることができます。
- **Workbook** のインスタンスを作成し、**Workbook.loadFromFile()** メソッドを使用して Excel ファイルを読み込みます。
- 「fileStream」という名前の新しいFileOutputStreamオブジェクトを作成し、出力が保存されるファイル名「SaveStream.html」を指定します。
- **Workbook.saveToStream()** メソッドを呼び出し、ファイルストリームにHTML形式のコンテンツを保存します。

**Java**
```Java
import com.spire.xls.*;
import java.io.FileOutputStream;

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

                //Load the sample document
                Workbook wb = new Workbook();
                wb.loadFromFile("Sample.xlsx");

                FileOutputStream fileStream = new FileOutputStream("SaveStream.html");
                wb.saveToStream(fileStream, FileFormat.HTML);
                fileStream.close();
    }
}
```
> 提供されたコードスニペットは、Spire.XLS for Javaを使用してExcelファイルをHTML形式に変換することを実証しています。さらに、この記事では、HTMLファイルへの画像の埋め込みやスタンドアロンのHTMLファイルとして保存するなど、変換出力をカスタマイズするために利用できるさまざまなオプションについて説明します。Spire.XLSの柔軟性を活用することで、変換プロセスを簡単に制御し、特定のニーズに合わせて出力を調整することができます。単純な変換から、ページの向き、ヘッダーとフッター、CSSスタイルなどの高度な設定を必要とする複雑な変換まで、Spire.XLSは簡単に行うことができます。最後に、Spire.XLS for Java が Excel ファイルを HTML 形式に変換するための効率的なソリューションを提供することがお分かりいただけたと思います。Excelファイルの処理についてさらに詳しく知りたい場合は、[Excelフォーラム](https://www.e-iceblue.com/forum/spire-xls-f4.html)で一般的な質問に対する回答を見つけたり、ベストプラクティスを共有したり、他の開発者とつながったりすることができるので、さらなるリソースを探すことができます。