c# - ClosedXML 未返回正确的单元格值
问题描述
我正在尝试获取单元格的值。在 Excel 中,它显示为0.22
(格式为数字,0.00
)。在基础 Excel sheetXX.xml 文件中,值为
<v>0.21970469798657719</v>
该值是公式的结果。
当我尝试从 C# 中的 ClosedXML 访问该单元格时,我得到0
.
sheet.Cell(22, 5).GetValue<double>(); // = 0
相同的
sheet.Cell(22, 5).CachedValue
sheet.Cell(22, 5).Value
sheet.Cell(22, 5).GetString()
ETC...
我可以在调试时看到该sheet.Cell(22, 5).InnerText
属性是正确的,尽管我不知道如何在不调试时访问它。
任何时候都不会抛出异常。
为什么 ClosedXML 没有返回正确的值?
解决方案
我发现尝试使用某种.GetValue<T>()
方法访问单元格将起作用或将值归零,以便随后尝试通过其他方式访问它的尝试不成功。如果,而不是曾经使用.GetValue<T>()
,你只使用
double.TryParse(sheet.Cell(row, col).CachedValue.ToString(), out var valueOfInterst);
它更可靠。
推荐阅读
- c - 只有一名工作人员在多线程生产者消费者问题中工作
- angular - 登录后无法通过 authguard - Angular
- javascript - 如何删除所有表行(来自 if 语句),不仅是 JavaScript 中的偶数/奇数
- vba - 错误 ms 访问 vba 电子邮件报告
- checkbox - 如何在 Inno Setup 中将复选框添加到第一个/欢迎页面
- vb.net - SSIS 脚本任务目标组件未完成
- vb.net - 如何在 txt 文件中输出一组数字的平均值?
- c++ - 以 VCL 形式在 TPaintBox 上绘制视频图像
- excel - Python:提取到 csv,其中“逗号”= Excel 中的下一个单元格
- python - 在模板中显示 Django 字段属性,例如 min_value 和 max_value