如何使用开放XML检索Excel的文化信息?

csj*_*eph 5 .net excel culture cultureinfo openxml

我的 Excel 文件中的数值用“.”存储。小数分隔符。我想知道,excel总是使用“.” 作为小数点分隔符?如果没有,那么如何检索 Excel 文件的文化信息以正确格式化十进制值?

谢谢。

Mar*_*der -1

我遇到了同样的问题,并检查了电子表格的所有 XML 文件中的语言代码。

我没有找到任何语言代码,因此我假设数字格式为英语(en-US)。

这是我的代码,用于读取该列并将其解析回(ToString)为我当前的文化。

    private string GetCellValue(Cell cell, SharedStringTable stringTable)
    {
        string value = string.Empty;

        if ((cell.DataType != null) && (cell.DataType == CellValues.SharedString))
        {
            int stringId = int.Parse(cell.CellValue.Text);
            value = stringTable.ChildElements[stringId].InnerText;
        }
        else if (cell.CellValue != null)
        {
            value = cell.CellValue.Text;

            if (decimal.TryParse(value, NumberStyles.Any, CultureInfo.GetCultureInfo("en-US"), out var number))
            {
                value = number.ToString();
            }
        }

        return value;
    }
Run Code Online (Sandbox Code Playgroud)

您还可以检查房产Number的类型cell.DataType