Java: Excelセルのマージとマージ解除の方法

Excelドキュメントでテーブルの内容を設計する際に、セル範囲をマージするか、セルのマージを解除する必要がある場合があります。[Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html)はこの機能を簡単に実現することができます。以下に詳細なチュートリアルを示します。

-  Excelセルをマージする
-  Excelセルのマージを解除する


## Spire.XLS.Jarのインストール
方法1：
mavenを使用している場合は、次のコードをプロジェクトのpom.xmlファイルに追加することで、JARファイルをアプリケーションにインポートできます。
```
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <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：
mavenを使用していない場合は、[このリンク](https://jp.e-iceblue.com/download/free-spire-excel-for-java.html)からFree Spire.XLS for Javaをダウンロードできます。ダウンロードが完了したら、ダウンロードパッケージを解凍します。次にIDEAで新しいプロジェクトを作成し、「File」、「Project Structure」、「Modules」、「Dependencies」を順にクリックし、右側の緑の「+」の下の最初のオプション「JARs or Directories」をクリックして、前に解凍したファイルを見つけ、その中のlibフォルダの下にあるSpire.XLS.jarファイルをプロジェクトにインポートします。

## Excelセルをマージする

詳細な手順を以下に示す。
- Workbookインスタンスを作成します。
- Workbook.loadFromFile()メソッドを使用して、Excelサンプルドキュメントをロードします。
- Workbook.getWorksheets().get()メソッドを使用して、指定したワークシートを取得します。
- sheet.getRange().get().merge()メソッドを使用して、指定したセル範囲をマージします。
- XlsRange.getCellStyle().setHorizontalAlignment()メソッドを使用して、マージされたセルの水平方向の配置を中央揃えに設定します。
- XlsRange.getCellStyle().setVerticalAlignment()メソッドを使用して、マージされたセルの垂直配置を中央揃えに設定します。
- Workbook.saveToFile()メソッドを使用して、結果文書を保存します。
```
import com.spire.xls.*;

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

        // Workbookインスタンスを作成する
        Workbook workbook = new Workbook();

        // Excelサンプルドキュメントをロードする
        workbook.loadFromFile("input.xlsx");

        //最初のシートの取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //指定したセル範囲をマージする
        sheet.getRange().get("A1:D1").merge();

        //マージされたセルの水平方向の配置を中央揃えに設定する
        sheet.getRange().get("A1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

        //マージされたセルの垂直方向の配置を中央揃えに設定する
        sheet.getRange().get("A1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);


        //結果文書を保存する
        workbook.saveToFile("MergeCells.xlsx", FileFormat.Version2013);
    }
}
```
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/ee379aae-c103-423b-4c21-f117635aed0a.png)


## Excelセルのマージを解除する

詳細な手順を以下に示す。
- Workbookインスタンスを作成します。
- Workbook.loadFromFile()メソッドを使用して、Excelサンプルドキュメントをロードします。
- Workbook.getWorksheets().get()メソッドを使用して、指定したワークシートを取得します。
- sheet.getRange().get().unMerge()メソッドを使用して、指定したセル範囲のマージを解除します。
- Workbook.saveToFile()メソッドを使用して、結果文書を保存します。

```
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

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

        // Workbookインスタンスを作成する
        Workbook workbook = new Workbook();

        // Excelサンプルドキュメントをロードする
        workbook.loadFromFile("MergeCells.xlsx");

        //最初のシートの取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //指定したセル範囲のマージを解除する
        sheet.getRange().get("A1:D1").unMerge();

        //結果文書を保存する
        workbook.saveToFile("UnMergeCells.xlsx", FileFormat.Version2013);
    }
}
```
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/2ffd5bfe-cb82-e97b-daef-00509d4445b0.png)