在 C# 中使用 ClosedXml 将 var 转换为 int

问题描述 投票:0回答:1

我想将单元格中的 var 转换为 int,我知道它是 int,因为我知道 .xlsx 文件中的这一列充满了 int,但是 Convert.ToInt32() 会出错;

我做到了:

var km = feuille.Cell("C" + num.Substring(1, 1)); //supposed to be C1,C2 or C with any number
return Convert.ToInt32(km);

但是我明白了 未处理的异常。 System.InvalidCastException:无法将类型“ClosedXML.Excel.XLCell”的对象转换为类型“System.IConvertible”。 在 System.Convert.ToInt32(对象值)

c# closedxml
1个回答
2
投票

feuille.Cell("C" + num.Substring(1, 1))
为您提供 cell,而不是它的 value。所以请这样做:

var cell = feuille.Cell("C" + num.Substring(1, 1));
var km = Convert.ToInt32(cell.Value);

顺便说一句:

var
并不是真正的类型,它只是解析为编译时类型的语法快捷方式。在您的情况下,
var
解析为
ClosedXML.Excel.XLCell
。当您将鼠标悬停在 Visual Studio 中的变量上时,您可以确定实际类型。

© www.soinside.com 2019 - 2024. All rights reserved.