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

时间:2016-08-11 08:21:46

标签: .net excel openxml cultureinfo culture

我的Excel文件中的数字值与"一起存储。"十进制分隔符。我不知道,excel总是使用"。"作为十进制分隔符?如果没有,那么如何正确检索excel文件的文化信息以正确格式化十进制值?

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

这是我的代码,用于读取该列并将其解析(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;
    }

您还可以检查Number属性的cell.DataType类型。