【发布时间】:2020-05-26 01:23:59
【问题描述】:
目前在 SSIS 的脚本任务中使用以下 C# 将 Excel 列格式化为数字。
sheet.Columns[6].NumberFormat = "0.00";
但是,当创建列时,缺少千位分隔符。有没有办法添加这个?
【问题讨论】:
标签: c# excel ssis etl script-task
目前在 SSIS 的脚本任务中使用以下 C# 将 Excel 列格式化为数字。
sheet.Columns[6].NumberFormat = "0.00";
但是,当创建列时,缺少千位分隔符。有没有办法添加这个?
【问题讨论】:
标签: c# excel ssis etl script-task
我相信你可以用这个:
sheet.Columns[6].NumberFormat = "#,##0.00";
即使值为 0,也会显示带有零的位置,而带有井号 (#) 的位置只会在需要时显示。
以下是使用此格式时将显示的一些示例:
10000 -> 10,000.00
1000 -> 1,000.00
10 -> 10.00
5.25 -> 5.25
.25 -> 0.25
.1 -> 0.10
【讨论】:
在做了一些研究之后,我发现了以下内容:
在这里,我找到了适合您的解决方案:format a number with commas and decimals in C# (asp.net MVC3)
总结这篇文章,它指出你应该定义一个变量(数字)然后初始化它。之后,您将格式化两次:首先使用.ToDecimal(number),然后使用.ToString(("#,##0.00")
现在,让我们将此应用于您的示例:
定义并初始化您的变量——假设您将其称为工作表中第 6 列的名称(对于本示例,假设您将其定义为永不更改的常量,名为“成本”)
public const int cost = sheet.Columns[6]
那你要格式化:
Convert.ToDecimal(cost).ToString("#,##0.00");
这应该可以得到你想要的结果。
【讨论】:
数字格式表达式由以下数字说明符组成:
# : 数字占位符
0 : 零占位符
, : 小数点
. : 小数分隔符
[红色] : 颜色说明符
% : 百分比占位符
您可以使用以下表达式来显示千位分隔符:
sheet.Columns[6].NumberFormat = "#,##0.00";
示例 (图片取自以下参考资料):
【讨论】: