根据用户语言获取货币的默认NumberFormat

时间:2013-06-13 01:59:17

标签: c# excel format currency

我开发了一个Excel附加组件,以便用户可以将一些数字从服务器插入到他们的工作表中。现在我正在尝试使用插入的数据格式化单元格 因为我的用户属于各个国家, 附加组件应根据其文化进行格式化。

  • 有些使用句号作为小数分隔符,有些使用逗号。
  • 有些人使用逗号作为千位分隔符,有些使用空格或句号。
  • 有些使用分数货币,有些则没有。

现在我使用NumberFormatInfo类并手动生成NumberFormat字符串。 这是代码:

    NumberFormatInfo nfi = NumberFormatInfo.CurrentInfo;
    StringBuilder sbFormat = new StringBuilder();
    sbFormat.Append("#");
    if (nfi.CurrencyGroupSeparator == "?")
        sbFormat.Append(" ");
    else
        sbFormat.Append(nfi.CurrencyGroupSeparator);
    sbFormat.Append("##0");
    if (nfi.CurrencyDecimalDigits > 0)
    {
        sbFormat.Append(nfi.CurrencyDecimalSeparator);
        sbFormat.Append(new string('0', nfi.CurrencyDecimalDigits));
    }
    cell.NumberFormat = sbFormat.ToString();

我不知道这段代码是否涵盖了所有模式。 希望使用Excel提供的默认设置,但我找不到。

有什么想法吗?

谢谢!

0 个答案:

没有答案