gpt4 book ai didi

c# - EPPlus:检测并处理 "number stored as text"

转载 作者:太空狗 更新时间:2023-10-30 01:18:07 25 4
gpt4 key购买 nike

我们使用 EPPlus 库读取 Excel 电子表格并获取各种单元格值。

可能出现的一个问题是某些单元格值是“数字存储为文本”。我们可以要求用户尽量不要使用带有此警告的电子表格,但如果可以的话,我想在不严重污染我的代码的情况下处理它。

当读取带有“数字存储为文本”的单元格值时,我们会看到以下内容:

int foo = ws.Cells[row, column].GetValue<int>(); // foo comes out as 0
string bar = Convert.ToString(ws.Cells[row, column].Value); // bar comes out as "7"

理想情况下,我想要一种正确读取所有值的方法,而不必为电子表格中可能的每个单元格解析字符串。

最佳答案

我不会将其标记为已接受,因为它实际上并没有回答我的问题,所以如果有人知道如何检测“数字存储为文本”,那么请回答,我会接受你。

最后我换成了.GetValue<int>()等,而是使用方法调用。您甚至可以根据您的目的将其转换为扩展方法,以提高可读性。

方法如下所示:

    private int GetInt(object value)
{
if (value == null)
{
return 0;
}
else if (value is double)
{
return Convert.ToInt32(value);
}
else if (value is string)
{
var intValue = 0;
Int32.TryParse((string)value, out intValue);
return intValue;
}
else
{
throw new Exception("Unexpected value type.");
}
}

我这样调用它:

int foo = GetInt(ws.Cells[row, column].Value); // foo comes out as 7

关于c# - EPPlus:检测并处理 "number stored as text",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com