将 Excel 互操作的 Range.Value2 转换为字符串

Casting Range.Value2 of Excel interop to string

我从 C# 应用程序的 Excel 工作表中导入了一些值。一列基本上是文本,但可以包含任何值。我使用了以下内容:

Range range = ... // getting this from Excel, works fine
string myString = (string)range.Value2;

当单元格包含文本时,这是可行的。但是当它包含例如 123 时,调试器会为 range.Value2 显示 123.0 并且转换为字符串失败并出现异常。

我想知道,如何为各种单元格编写最通用的转换。至少是string和integer,可以是float内容

我找到了可能不太好但有效的解决方案:

myString = range.Value2 == null ? "" : range.Value2.ToString();

可能存在更好的东西。