1. 序章

Apache POIを使用して、MicrosoftExcelスプレッドシートに複数行のテキストをプログラムで作成できます。 ただし、複数行として表示されることはありません。 これは、コードを使用してセルにテキストを追加しても、セルの高さが自動的に調整されたり、必要な書式が適用されて複数行のテキストに変換されたりしないためです。

この短いチュートリアルでは、そのようなテキストを適切に表示するために必要なコードを示します。

2. ApachePOIとMavenの依存関係

Apache POIは、ソフトウェア開発者がMicrosoftOfficeドキュメントを作成および操作できるようにするオープンソースライブラリです。 前提条件として、読者は、 JavaでのMicrosoftExcelの操作に関する記事と、ApachePOIを使用してExcelに行を挿入する方法に関するチュートリアルを参照できます。

まず、プロジェクトpom.xmlファイルにApachePOI依存関係を追加する必要があります。

<dependency>
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>5.2.0</version> 
</dependency>

3. 複数行テキストの追加とフォーマット

複数行のテキストを含むセルを作成することから始めましょう。

cell.setCellValue("Hello \n world!");

上記のコードだけでExcelファイルを生成して保存する場合。 次の画像のようになります。

上の画像で示されているように1と2をクリックして、テキストが実際に複数行のテキストであることを確認できます。

コードを使用して、セルをフォーマットし、その行の高さを2行以上のテキストに拡張します。

cell.getRow()
  .setHeightInPoints(cell.getSheet().getDefaultRowHeightInPoints() * 2);

その後、テキストを折り返すようにセルスタイルを設定する必要があります。

CellStyle cellStyle = cell.getSheet().getWorkbook().createCellStyle();
cellStyle.setWrapText(true);
cell.setCellStyle(cellStyle);

上記のコードで生成されたファイルを保存してMicrosoftExcelで表示すると、セルに複数行のテキストが表示されます。

4. 概要

このチュートリアルでは、ApachePOIを使用してセルに複数行のテキストを追加する方法を学習しました。 次に、セルに書式を適用して、2行のテキストとして表示されることを確認します。 それ以外の場合、セルは1行で表示されます。

いつものように、記事のソースコードはGitHubから入手できます。