Excel セルの表示形式(Number Format)は、スプレッドシートを扱う際に重要なステップです。特に、プロフェッショナルな場面やデータドリブンな環境では、適切な表示形式を設定することで、データを明確かつ一貫性のある形で提示でき、用途に応じた適切な形式で表示することが可能になります(例:財務データ、パーセンテージ、日付、科学的値など)。Java を使用して Excel のタスクを自動化する場合、適切な表示形式をプログラムで設定することで、時間を節約し、エラーを減らし、レポートやダッシュボードの可読性を向上させることができます。 本記事では、Spire.XLS for Java を使用して、Excel セルの表示形式を設定する方法を説明します。これにより、洗練された構造化スプレッドシートを簡単に作成することが可能になります。 Java で Excel の表示形式を設定する Java で指定した書式の値を Excel セルに追加する Spire.XLS for Java をインストールします まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.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</artifactId> <version>14.12.0</version> </dependency> </dependencies> Java で Excel の表示形式を設定する Spire.XLS for Java は、CellRange.setNumberFormat() メソッドを提供しており、Excel の表示形式コードを使用してセルの表示形式を設定できます。以下の表は、Excel の表示形式コードでよく使用される記号とその機能を説明しています。 記号 説明 0 と # 0は桁数を強制的に表示(必要に応じてゼロ埋め)、#は必要な場合にのみ桁を表示します。 ? 数字の位置を揃えるためのプレースホルダー。使用されない場合はスペースを確保しますが表示しません。 , と . ,は千単位の区切り文字として使用され、1000での除算も示します。.は小数点を表します。 % 数値を100倍し、パーセント記号を追加します。 E+ / E- 科学的記数法で、正および負の指数を表します。 通貨($, €, ¥など) 対応する通貨記号を表示します。 [Color] テキストの色を設定(例:[Red], [Blue])。 @ テキストプレースホルダー。カスタムフォーマットでテキストを表現するために使用されます。 日付/時刻(yyyy, mmmm, mm, dd, hh, ss, AM/PM) 年、月名、月、日、時間、分、秒、12時間制のAM/PMを表します。 Java で Excel セルの表示形式を設定する手順は以下の通りです: Workbook オブジェクトを作成して、新しい Excel ワークブックを作成します。 Workbook.getWorksheets().get() メソッドを使用して、最初のデフォルトワークシートを取得します。 CellRange.setValue() メソッドで値を追加するか、CellRange.setNumberValue() メソッドで数値を追加します。 CellRange.setNumberFormat() メソッドで表示形式を設定します。 Workbook.saveToFile() メソッドでワークブックを保存します。 Java import com.spire.xls.*; public class SetNumberFormat { public static void main(String[] args) { // 新しいワークブックインスタンスを作成 Workbook workbook = new Workbook(); // 最初のワークシートを取得 Worksheet sheet = workbook.getWorksheets().get(0); // タイトルを追加 sheet.getCellRange("B1").setText("数値表示形式"); sheet.getCellRange("B1").getCellStyle().getExcelFont().isBold(true); sheet.getCellRange("B1").getCellStyle().getExcelFont().setFontName("Yu Gothic UI"); sheet.getCellRange("B1:C1").merge(); sheet.getCellRange("B1:C1").setHorizontalAlignment(HorizontalAlignType.Center); // 数値フォーマットの例と対応する値を追加 // 正の数値フォーマットを追加 addNumberFormatExample(sheet, "B3", "C3", "0", "1234.5678"); addNumberFormatExample(sheet, "B4", "C4", "0.00", "1234.5678"); addNumberFormatExample(sheet, "B5", "C5", "#,##0.00", "1234.5678"); addNumberFormatExample(sheet, "B6", "C6", "$#,##0.00", "1234.5678"); // 負の数値フォーマットを追加 addNumberFormatExample(sheet, "B7", "C7", "0;[Red]-0", "-1234.5678"); addNumberFormatExample(sheet, "B8", "C8", "0.00;[Red]-0.00", "-1234.5678"); // 科学表記とパーセンテージフォーマットを追加 addNumberFormatExample(sheet, "B9", "C9", "0.00E+00", "1234.5678"); addNumberFormatExample(sheet, "B10", "C10", "0.00%", "0.5678"); // 日付と時刻フォーマットを追加 addNumberFormatExample(sheet, "B11", "C11", "yyyy-MM-dd", "44930.0"); // 2023-01-01のExcel日付値 addNumberFormatExample(sheet, "B12", "C12", "HH:mm:ss", "0.75"); // 18:00:00のExcel時刻値 // テキストフォーマットを追加 addNumberFormatExample(sheet, "B13", "C13", "@", "テキスト例"); // フォーマットを設定 sheet.getCellRange("B3:B13").getCellStyle().setKnownColor(ExcelColors.Gray25Percent); sheet.getCellRange("C3:C13").getCellStyle().setKnownColor(ExcelColors.Gray50Percent); sheet.setColumnWidth(2, 24); sheet.setColumnWidth(3, 24); // ワークブックをファイルに保存 workbook.saveToFile("output/Excelの数字書式を設定.xlsx", FileFormat.Version2016); workbook.dispose(); } /** * 指定されたワークシートのセルに数値フォーマットの例を追加します。 * * @param sheet 修正するワークシート。 * @param textCell 数値フォーマット文字列を表示するセル。 * @param valueCell フォーマットされた値を表示するセル。 * @param format 数値フォーマットコード。 * @param value フォーマットする数値値。 */ private static void addNumberFormatExample(Worksheet sheet, String textCell, String valueCell, String format, String value) { sheet.getCellRange(textCell).setText(format); // 数値フォーマットコードを表示 sheet.getCellRange(valueCell).setValue(value); // 値を追加 // sheet.getCellRange(valueCell).setNumberValue(Double); // またはsetNumberValue()メソッドで数値を設定 sheet.getCellRange(valueCell).setNumberFormat(format); // 数値フォーマットを適用 } } Java で指定した書式の値を Excel セルに追加する Spire.XLS for Java では、CellRange クラスのメソッドを使用して、特定の数値書式でデータを直接 Excel セルに追加することも可能です。以下の表は、セルにデータを追加するための主なメソッドと、対応するデータ型を説明しています。 メソッド 説明 setText(String text) セルまたはセル範囲にテキスト値を設定します。 setNumberValue(double numberValue) セルまたはセル範囲に数値を設定します。 setBooleanValue(boolean booleanValue) セルまたはセル範囲にブール値(true/false)を設定します。 setDateTimeValue(java.util.Date dateTime) セルまたはセル範囲に日時値を設定します。 setHtmlString(String htmlCode) セルまたはセル範囲にHTML形式の文字列を設定します。 Excel のセルに特定の数値形式でデータを追加する詳細な手順は次のとおりです: Workbook クラスのインスタンスを作成します。 Workbook.getWorksheets().get() メソッドを使用して、最初のワークシートを取得します。 Worksheet.getCellRange() メソッドを使用して、セルまたはセル範囲を取得します。 CellRange クラスのメソッドを使用して、特定の表示形式の値を追加します。 必要に応じてセルのスタイルを設定します。 Workbook.saveToFile() メソッドでワークブックを保存します。 Java import com.spire.xls.*; import java.util.Calendar; import java.util.Date; public class AddFormattedDataExcel { public static void main(String[] args) { // 新しいワークブックインスタンスを作成 Workbook workbook = new Workbook(); // 最初のワークシートを取得 Worksheet sheet = workbook.getWorksheets().get(0); // テキスト値を追加 sheet.getCellRange("C3").setText("サンプルテキスト"); // 数値を追加 sheet.getCellRange("C4").setNumberValue(1234.5678); // ブール値を追加 sheet.getCellRange("C5").setBooleanValue(true); // 日付と時刻の値を追加 sheet.getCellRange("C6").setDateTimeValue(new Date(2024, Calendar.DECEMBER, 12)); // HTML文字列を追加 sheet.getCellRange("C7").setHtmlString("太字のテキスト"); // セルをフォーマット sheet.getCellRange("C3:C7").setHorizontalAlignment(HorizontalAlignType.Center); sheet.getCellRange("C3:C7").setVerticalAlignment(VerticalAlignType.Center); sheet.getCellRange("C3:C7").getCellStyle().getExcelFont().setFontName("Yu Gothic UI"); sheet.getCellRange("C3:C7").getCellStyle().getExcelFont().setSize(14); for (int i = 3; i