数値フォーマット
ReoGrid Web は Excel 互換の数値フォーマットコードをサポートしています。 フォーマットコードは、セルの格納値を変えずに表示形式を制御します。
Live Demo
フォーマットの適用
セルまたは範囲に setFormat() を使うか、format プロパティに直接代入します。
// 単一セル
worksheet.cell('B2').setValue('4999').setFormat('$#,##0.00')
// 範囲
worksheet.range('B2:B10').setFormat(NumberFormat.currency('$', 2))
// プロパティ代入
worksheet.cell('C3').format = '0.00%'
// フォーマットのクリア
worksheet.cell('B2').format = undefined
NumberFormat ヘルパー
NumberFormat ユーティリティは一般的なケースのフォーマットコードを生成します。
createReogrid と一緒にインポートします:
import { createReogrid, NumberFormat } from '@reogrid/lite'
NumberFormat.number(decimals?, grouping?)
NumberFormat.number() // '#,##0' → 1,234,567
NumberFormat.number(2) // '#,##0.00' → 1,234,567.89
NumberFormat.number(2, false) // '0.00' → 1234567.89
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
decimals | number | 0 | 小数点以下の桁数 |
grouping | boolean | true | 桁区切りの追加 |
NumberFormat.percent(decimals?)
NumberFormat.percent() // '0%' → 43%
NumberFormat.percent(2) // '0.00%' → 42.75%
セルの値は小数(例: '0.4275' → 42.75%)で格納します。
NumberFormat.currency(symbol, decimals?, position?)
NumberFormat.currency('$', 2) // '$#,##0.00' → $4,999.00
NumberFormat.currency('€', 2) // '€#,##0.00' → €4,999.00
NumberFormat.currency('¥', 0) // '¥#,##0' → ¥4,999
NumberFormat.currency('円', 0, 'suffix') // '#,##0円' → 4,999円
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
symbol | string | — | 通貨記号 |
decimals | number | 0 | 小数点以下の桁数 |
position | 'prefix' | 'suffix' | 'prefix' | 記号の配置 |
NumberFormat.date(pattern?)
NumberFormat.date() // 'yyyy-mm-dd' → 2025-03-17
NumberFormat.date('MM/dd/yyyy') // 'MM/dd/yyyy' → 03/17/2025
NumberFormat.date('d MMM yyyy') // 'd MMM yyyy' → 17 Mar 2025
セルの値は Excel シリアル日付(1900-01-01 からの日数)である必要があります。 xlsx ファイルを読み込む場合、日付セルにはシリアル値とフォーマットコードが既に含まれているため、追加の作業は不要です。
NumberFormat.time(pattern?)
NumberFormat.time() // 'HH:mm:ss' → 18:00:00
NumberFormat.time('h:mm AM/PM') // 'h:mm AM/PM' → 6:00 PM
セルの値は1日の小数部分(例: '0.75' = 18:00)である必要があります。
低レベル API
// フォーマット設定
ws.setCellNumberFormat(row, column, '#,##0.00');
// フォーマット取得
const fmt = ws.getCellNumberFormat(row, column);
// フォーマットクリア
ws.clearCellNumberFormat(row, column);
生のフォーマットコードの使用
Excel 互換のフォーマットコード文字列を直接渡すこともできます:
worksheet.cell('A1').setFormat('#,##0.0') // 小数1桁、桁区切りあり
worksheet.cell('A2').setFormat('0.000%') // パーセント、小数3桁
worksheet.cell('A3').setFormat('"€"#,##0.00') // 引用符付き記号
worksheet.cell('A4').setFormat('[Red]0.00') // カラー修飾子
フォーマットコードリファレンス
| パターントークン | 意味 |
|---|---|
0 | 数字、不在時はゼロを表示 |
# | 数字、前後のゼロを抑制 |
, | 桁区切り(#/0 の間にある場合) |
. | 小数点 |
% | 100倍して % を付加 |
"text" | リテラルテキスト |
d / dd | 日(1〜31 / 01〜31) |
m / mm / mmm / mmmm | 月(数値 / 2桁 / 略称 / 全名) |
yy / yyyy | 年(2桁 / 4桁) |
h / hh | 時(12時間制 / 先頭ゼロ付き24時間制) |
mm(h の後) | 分 |
ss | 秒 |
AM/PM | 12時間制表示 |