【发布时间】:2015-05-14 07:10:05
【问题描述】:
我从 C# 应用程序的 Excel 工作表中导入一些值。一列基本上是文本,但可以包含任何值。我使用了以下内容:
Range range = ... // getting this from Excel, works fine
string myString = (string)range.Value2;
当单元格包含文本时,这是有效的。但是,例如,当它包含 123 时,调试器会为 range.Value2 显示 123.0,并且转换为字符串失败并出现异常。
我想知道,如何为各种单元格编写最通用的转换。至少是字符串和整数,可以是浮动内容。
【问题讨论】:
-
Value2的类型和值到底是什么?异常消息是什么? -
@SonerGönül 异常:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 无法将双精度转换为字符串。 Value2 是动态的 :)
-
所以,range.Value2.ToString();
-
@RezaArabQaeni 是的,我自己也找到了类似的答案,见下文,Excel 也经常返回空值
-
仅供参考 - 当范围超过 1 个单元格时会爆炸,因为 .Value2 将返回一个 object[] 数组