チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.XLS for Java»データ»Java:Excel セルの表示形式(数値書式)を設定する方法
2024-12-10

Java:Excel セルの表示形式(数値書式)を設定する方法

Excel セルの表示形式Number Format)は、スプレッドシートを扱う際に重要なステップです。特に、プロフェッショナルな場面やデータドリブンな環境では、適切な表示形式を設定することで、データを明確かつ一貫性のある形で提示でき、用途に応じた適切な形式で表示することが可能になります(例:財務データ、パーセンテージ、日付、科学的値など)。Java を使用して Excel のタスクを自動化する場合、適切な表示形式をプログラムで設定することで、時間を節約し、エラーを減らし、レポートやダッシュボードの可読性を向上させることができます。

本記事では、Spire.XLS for 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 の表示形式を設定する

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 <= 7; i++) {
            sheet.autoFitColumn(i);
        }

        // ワークブックを保存
        workbook.saveToFile("output/Excelに書式付き値を追加.xlsx", FileFormat.Version2016);
        workbook.dispose();
    }
}

Java で指定した書式の値を Excel セルに追加する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 50 times