我的Excel文件中的数字值与"一起存储。"十进制分隔符。我不知道,excel总是使用"。"作为十进制分隔符?如果没有,那么如何正确检索excel文件的文化信息以正确格式化十进制值?
感谢。
答案 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
类型。