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

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

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

现在我使用NumberFormatInfo类并手动生成NumberFormatstring。 这里是代码:

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提供的默认值,但是我找不到。

任何想法?

谢谢!