JavaでExcelをHTMLに、またはHTMLをExcelに変換する

Excelはデータ処理や分析に広く使われている表計算フォーマットであり、HTMはウェブページの作成に使われるマークアップ言語である。両者の用途には違いがあるが、時にはデータをより良く利用し、提示するために、一方のフォーマットから他方のフォーマットにデータを変換する必要がある。この記事では、Javaを使ってExcelとHTMLのフォーマットを変換する方法を説明します。
* [JavaでExcelワークブックをHTMLに変換する](#javaでexcelワークブックをhtmlに変換する)
* [Javaで指定したワークシートをHTMLに変換する](#javaで指定したワークシートをhtmlに変換する)
* [JavaでHTMLファイルをExcel XLS/ XLSX形式に変換する]()

## フリーのJavaライブラリのインストール 
フリー・ライブラリーの[**Free Spire.XLS for Java**](https://www.e-iceblue.com/Introduce/free-xls-for-java.html)は様々なExcel文書処理を実行しますが、いくつかのページ制限があります。[このリンクから製品パッケージをダウンロードし](https://www.e-iceblue.com/Download/xls-for-java-free.html)、jarパッケージを手動で導入するか、Mavenリポジトリから直接インストールします。
```
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>5.3.0</version>
</dependency>
```

## JavaでExcelワークブックをHTMLに変換する
**`Workbook`** クラスの **`saveToFile(String fileName, FileFormat.HTML)`** メソッドを使うと、読み込んだExcelドキュメントをHTMLファイルに変換することができます。コードは以下の通りです：
```java
import com.spire.xls.*;
 
public class ExcelToHtml {
    public static void main(String[] args) {
        // Excelワークブックの読み込み
        Workbook wb = new Workbook();
        wb.loadFromFile("input.xlsx");
 
        //ワークブックをhtmlとして保存する
        wb.saveToFile("ExcelToHtml.html", FileFormat.HTML);
    }
}
```
![ConvertExcelToHtml.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/60eba298-1b57-3df1-3c9e-7b3f169dd286.png)

## Javaで指定したワークシートをHTMLに変換する
Excelワークブック全体をHTMLファイルに変換するだけでなく、まず指定したワークシートを取得し、**`Worksheet`** クラスの **`saveToHtml()`** メソッドを使ってワークシートをHTMLとして保存することもできます。
また、変換時に **`HTMLOptions`** クラスの **`setImageEmbedded()`** メソッドをtrueに設定することで、ワークシート内の画像をHTMLファイルに埋め込むことができます。コードは以下の通りです：
```java
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.HTMLOptions;
 
public class sheetToHtml {
    public static void main(String[] args) {
        // Excelワークブックの読み込み
        Workbook wb = new Workbook();
        wb.loadFromFile("input.xlsx");
 
        //指定されたワークシートの取得
        Worksheet sheet = wb.getWorksheets().get(1);
 
        //画像を埋め込む
        HTMLOptions options = new HTMLOptions();
        options.setImageEmbedded(true);
 
        //ワークシートをhtmlとして保存する
        sheet.saveToHtml("SheetToHtml.html",options);
 
    }
}
```
 
## JavaでHTMLファイルをExcel XLS/ XLSX形式に変換する
フリーのExcelライブラリは、**`loadFromHtml()`** メソッドでHTMLファイルを読み込み、**`saveToFile()`** メソッドでExcel XLSまたはXLSXフォーマットに変換することもサポートしています。コードは以下の通り：
```java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
 
public class ConvertHtmlToExcel {
    public static void main(String[] args) {
 
        // HTMLファイルを読み込む
        Workbook workbook = new Workbook();
        workbook.loadFromHtml("sample.html");
 
        // HTMLファイルをExcel XLSXまたはXLS形式で保存
        workbook.saveToFile("HtmlToXLSX.xlsx", ExcelVersion.Version2016);
        workbook.saveToFile("HtmlToXLS.xls", ExcelVersion.Version97to2003);
        workbook.dispose();
 
    }
}
```


問題が発生した場合は、フォーラムにアクセスしてください。

https://www.e-iceblue.com/forum/spire-doc-f6.html