LinqToExcel和货币格式(文化)

时间:2015-08-04 12:30:06

标签: c# type-conversion currency culture linq-to-excel

我在我的应用程序中使用LinqToExcel已经有一段时间了,并且一直像魅力一样。

但是我在从Excel中读取货币字符串时遇到了问题。

我还无法发布图片,但excel中的值9999格式化为9.999,00 pt-BR

我的机器中的本地LinqToExcel读取此值就好了(9999)我可以将其转换为十进制。

但是在具有 en-US 文化的IIS服务器上,它会将此值读取为9,999.00,因此当我尝试将其转换为十进制时,我会得到一个例外。

有没有办法为LinqToExcel设置默认文化或类似的东西?因为我不想替换,.它太难看了。

我正在使用C#VS2013。

1 个答案:

答案 0 :(得分:0)

实际上问题是excel的第一行都是空字符串,所以如果用户将这些字段留空,LinqToExcel会假定字符串作为这些列的类型,而是返回屏蔽输入(9.999,00)整数值(9999)。

解决方法是在文件保存/关闭时使用excel文件中的VBA宏将空字符串替换为0(零)。