【问题标题】:C# SSIS Script Task - Add Thousand Seperator when formatting Excel columnC# SSIS 脚本任务 - 格式化 Excel 列时添加千位分隔符
【发布时间】:2020-05-26 01:23:59
【问题描述】:

目前在 SSIS 的脚本任务中使用以下 C# 将 Excel 列格式化为数字。

sheet.Columns[6].NumberFormat = "0.00";

但是,当创建列时,缺少千位分隔符。有没有办法添加这个?

【问题讨论】:

    标签: c# excel ssis etl script-task


    【解决方案1】:

    我相信你可以用这个:

    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
    

    【讨论】:

    • 嗨,我试过了,但它不起作用,恐怕没有千位分隔符
    • @OllieSP 很有趣。也许您可以更新您的问题以包含更多代码吗?它可能会受到列中数据填充方式的影响
    【解决方案2】:

    在做了一些研究之后,我发现了以下内容:

    在这里,我找到了适合您的解决方案: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");
    

    这应该可以得到你想要的结果。

    【讨论】:

    【解决方案3】:

    数字格式表达式由以下数字说明符组成:

    # : 数字占位符
    0 : 零占位符
    , : 小数点
    . : 小数分隔符
    [红色] : 颜色说明符
    % : 百分比占位符

    您可以使用以下表达式来显示千位分隔符:

    sheet.Columns[6].NumberFormat = "#,##0.00";
    

    示例 (图片取自以下参考资料)

    参考资料:

    【讨论】:

    • 嗨,我试过了,但它不起作用,恐怕没有千位分隔符
    • @OllieSP 你能提供你正在实现的整个代码吗,因为它可能是改变列行为的其他代码行。
    猜你喜欢
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    相关资源
    最近更新 更多