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,或更改当前线程的区域性。

我使用法语是因为逗号是这种语言的小数点分隔符,但当然任何其他语言都应该适用。