aardio 文档

dotNet.ReoGrid 扩展库 - 数据格式化

要指定数据格式,请使用工作表的 SetRangeDataFormat 方法:

var sheet1 = reoGridControl.CurrentWorksheet;
sheet1.SetRangeDataFormat(range, formatFlag, argument);

参数 formatFlag 指定 ReoGrid.DataFormat.CellDataFormatFlag 枚举值。 参数 argument 为可选参数。

例如:

sheet1.SetRangeDataFormat("A1:B2", ReoGrid.DataFormat.CellDataFormatFlag.Number, 
    {
        // 小数位数,例如 0.1234
        DecimalPlaces = 4,
        // 负数样式,例如 -123 显示为 (123)
        NegativeStyle = NumberDataFormatter.NumberNegativeStyle.RedBrackets,
        // 使用千位分隔符,例如 123,456
        UseSeparator = true
    }
);

或者使用 action 操作(可通过调用 Undo 方法或按 Ctrl+Z 撤销):

reoGridControl.DoAction(SetRangeDataFormatAction(range, formatFlag, [可选] dataFormatArgs = null));

测试代码:

sheet1["B2"] = 12345;
sheet1["C2"] = 12345.67890;
sheet1["B3"] = -1234;
sheet1["C3"] = -1234.56789;

示例图像

可用数据格式

类型 CellDataFormatFlag 参数
数字 ReoGrid.DataFormat.CellDataFormatFlag.Number ReoGrid.DataFormat.NumberDataFormatter.NumberFormatArgs
日期时间 ReoGrid.DataFormat.CellDataFormatFlag.DateTime ReoGrid.DataFormat.DateTimeDataFormatter.DateTimeFormatArgs
百分比 ReoGrid.DataFormat.CellDataFormatFlag.Percent ReoGrid.DataFormat.PercentDataFormatter.NumberFormatArgs
货币 ReoGrid.DataFormat.CellDataFormatFlag.Currency ReoGrid.DataFormat.CurrencyDataFormatter.CurrencyFormatArgs
文本 ReoGrid.DataFormat.CellDataFormatFlag.Text
自定义扩展 ReoGrid.DataFormat.CellDataFormatFlag.Custom 任意对象

数字格式

数字格式提供通用的数字格式化功能,可指定千位分隔符、小数位数和负数样式。

数字格式示例

示例:

数字格式示例2

设置单元格为数字格式的代码:


var numArgs = ReoGrid.DataFormat.NumberDataFormatter.NumberFormatArgs();
numArgs.DecimalPlaces = 4  // 小数位数 0.1234
numArgs.UseSeparator = true  // 使用千位分隔符:123,456 
sheet1.SetRangeDataFormat("A1:E7", ReoGrid.DataFormat.CellDataFormatFlag.Number, numArgs);

负数样式

负数样式定义在枚举 NumberNegativeStyle 中。

ReoGrid 提供以下样式来格式化负数:

负数样式 示例 枚举值
无样式 -123,456.789 Minus
红色 123,456.789 Red
红色减号 -123,456.789 Red
括号 (123,456.789) Brackets
红色括号 (123,456.789) Brackets
红色括号减号 (-123,456.789) Brackets
日文前缀 ▲ 123,456,789 Prefix_Sankaku
日文前缀(ReoGrid Pro) ▲ 123,456,789 Prefix_Sankaku

示例:

负数样式示例

var sheet1 = grid.CurrentWorksheet;

var numArgs = ReoGrid.DataFormat.NumberDataFormatter.NumberFormatArgs();
numArgs.DecimalPlaces = 3;
numArgs.UseSeparator = true;
numArgs.NegativeStyle = ReoGrid.DataFormat.NumberDataFormatter.NumberNegativeStyle.RedBrackets;

sheet1.SetRangeDataFormat("B2", ReoGrid.DataFormat.CellDataFormatFlag.Number, numArgs);
sheet1["B2"] = -12345.67;

日期时间格式

日期时间格式示例

var timeArgs = ReoGrid.DataFormat.DateTimeDataFormatter.DateTimeFormatArgs();
timeArgs.CultureName = "en-US" // 区域设置
timeArgs.Format = "yyyy/MM/dd" // 格式模式

sheet1.SetRangeDataFormat(RangePosition.EntireRange, ReoGrid.DataFormat.CellDataFormatFlag.DateTime,timeArgs);

百分比格式

百分比格式示例

sheet1.SetRangeDataFormat(
    RangePosition.EntireRange, 
    ReoGrid.DataFormat.CellDataFormatFlag.Percent,
    ReoGrid.DataFormat.NumberDataFormatter.NoDecimalDigitsArgument
);

货币格式

货币格式继承自数字格式,可以指定货币符号在数字前或后。例如:

货币格式示例

var sheet1 = grid.CurrentWorksheet;

var currencyArgs = ReoGrid.DataFormat.CurrencyDataFormatter.CurrencyFormatArgs();
currencyArgs.CultureEnglishName = "en-US"
currencyArgs.DecimalPlaces = 2
currencyArgs.UseSeparator = true
currencyArgs.PrefixSymbol = "$"

sheet1.SetRangeDataFormat("B2", ReoGrid.DataFormat.CellDataFormatFlag.Currency,currencyArgs);
sheet1["B2"] = 1234;

在符号和数字之间添加空格

可以在货币符号后添加空格,例如:

货币格式空格示例


sheet1.SetRangeDataFormat("B2", ReoGrid.DataFormat.CellDataFormatFlag.Currency,formatArgs);

示例:设置后缀符号

货币后缀示例

var formatArgs = ReoGrid.DataFormat.CurrencyDataFormatter.CurrencyFormatArgs();
formatArgs.CultureEnglishName = "en-US"
formatArgs.DecimalPlaces = 2
formatArgs.UseSeparator = true
formatArgs.PostfixSymbol = " USD"

sheet1.SetRangeDataFormat("B2", ReoGrid.DataFormat.CellDataFormatFlag.Currency,formatArgs);

文本格式

将数据格式设置为 Text 可以防止数据被格式化。

文本格式示例

sheet1.SetRangeDataFormat(RangePosition.EntireRange, ReoGrid.DataFormat.CellDataFormatFlag.Text);

自定义单元格数据格式化器

要添加自定义单元格数据格式化器,请参阅自定义数据格式

Markdown 格式