ExcelDataReader 不会读取带逗号的浮点数,如“123,45”(而是读取“123.45”)
ExcelDataReader does not read floats with comma like "123,45" (instead reads "123.45")
如何读取带逗号的浮点值,如 123,45
?
我必须阅读格式类似于 123,45
的第三方 excel 文件,我不能/不允许将它们重新格式化为 123.45
。
我现在用的是这个方法:
string GetCell(int row, int col)
{
if (Sheet != null)
{
try
{
string cellContent = Sheet[row][col].ToString(); // careful "ToString()" syntax!
//Print("Excel.Get({0},{1}): {2}", row, col, cellContent);
return cellContent;
}
catch (Exception e)
{
Print("Excel.Get("+row+","+col+") error: "+ e.Message);
return null;
}
}
else
{
Print("Excel.Get("+ row + ","+ col+") error: sheet is null");
return null;
}
}
但字符串返回为 12345
。
提前致谢!
您可以尝试指定一种文化
string valueRead = "123,45";
CultureInfo frenchCultureInfo = new CultureInfo("fr-FR");
float valueParsed = float.Parse(valueRead, frenchCultureInfo);
编辑:根据您的评论,您可以使用 Excel 互操作指定文化。其他选择包括,将值读取为字符串并使用 float.Parse
,或更改当前线程的区域性。
我使用法语是因为逗号是这种语言的小数点分隔符,但当然任何其他语言都应该适用。
如何读取带逗号的浮点值,如 123,45
?
我必须阅读格式类似于 123,45
的第三方 excel 文件,我不能/不允许将它们重新格式化为 123.45
。
我现在用的是这个方法:
string GetCell(int row, int col)
{
if (Sheet != null)
{
try
{
string cellContent = Sheet[row][col].ToString(); // careful "ToString()" syntax!
//Print("Excel.Get({0},{1}): {2}", row, col, cellContent);
return cellContent;
}
catch (Exception e)
{
Print("Excel.Get("+row+","+col+") error: "+ e.Message);
return null;
}
}
else
{
Print("Excel.Get("+ row + ","+ col+") error: sheet is null");
return null;
}
}
但字符串返回为 12345
。
提前致谢!
您可以尝试指定一种文化
string valueRead = "123,45";
CultureInfo frenchCultureInfo = new CultureInfo("fr-FR");
float valueParsed = float.Parse(valueRead, frenchCultureInfo);
编辑:根据您的评论,您可以使用 Excel 互操作指定文化。其他选择包括,将值读取为字符串并使用 float.Parse
,或更改当前线程的区域性。
我使用法语是因为逗号是这种语言的小数点分隔符,但当然任何其他语言都应该适用。