【问题标题】:How can I apply locale to decimal formatting in Excel?如何将语言环境应用于 Excel 中的十进制格式?
【发布时间】:2011-08-16 13:42:31
【问题描述】:

我正在从代码生成 excel。我正在尝试通过 .net 代码自定义单元格。 而且我还想添加本地化,​​以便在用户尝试输入小数时生成 excel 后,它应该采用该区域设置数字格式。

如何用千位分隔符格式化小数 en-US 一个数字看起来像 1,000.45 和 Dutch-Belgium 它变成 1.000,45 我在我的代码中提到小数作为 worksheet.Range(Range).NumberFormat = "###,## #.##"

如何为不同的语言环境更改此格式。

请帮帮我。

谢谢 拉梅什.T.

【问题讨论】:

  • 应该采用用户设置的区域设置。你测试了吗?发生了什么?
  • 没有詹姆斯,我没有测试过,是不是默认它采用区域格式默认没有外部提及
  • 如果您有这种格式,则使用机器上设置的任何区域设置。如果日期是这种格式,它将本地化​​日期。
  • 如何用千位分隔符格式化小数 en-US 一个数字看起来像 1,000.45 而荷兰 - 比利时它变成 1.000,45 我在我的代码中提到小数作为 worksheet.Range(Range).NumberFormat = "# ##,###.##"
  • 这听起来并不有趣,我不羡慕你,每当我尝试在 Excel 中做更高级或更“通用”的事情时,它都是一个令人讨厌的 hack,或者只是不是出色的代码或我放弃了=)

标签: .net vb.net excel localization


【解决方案1】:

我通过 COM 从我的业务应用程序访问 Excel 并使用:

rg.NumberFormat = "#" + e.ThousandsSeparator + "##0" + e.DecimalSeparator + "00"

e 是 Excel.Application 类型,rg 是 Range。

奇怪的是,在普通的 excel VBA 中,我必须直接写“#,##0.00”,因为使用与上述相同的结构会导致格式错误。

这个想法来自另一个stackoverflow answer。您可以在 Excel 的对象浏览器中搜索 separator 找到所有分隔符。

【讨论】:

    【解决方案2】:

    选项按钮(在excel2007下office按钮下,右下角)高级功能可以让您选择小数点或逗号,独立于区域设置(取消选中使用系统分隔符)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2015-12-17
      相关资源
      最近更新 更多