You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中使用ClosedXml将单元格值转换为int时遇类型转换异常

解决ClosedXML中单元格转int类型的报错问题

你遇到的InvalidCastException是因为代码里直接对XLCell对象执行Convert.ToInt32()转换,而不是单元格内的数值。feuille.Cell()方法返回的是XLCell类型实例,它并没有实现IConvertible接口,所以无法直接被转换为int。

修复方案

以下几种方式都可以解决问题:

  1. 获取单元格值后再转换
var kmCell = feuille.Cell("C" + num.Substring(1, 1));
return Convert.ToInt32(kmCell.Value);
  1. 使用ClosedXML提供的类型安全取值方法(推荐)
    ClosedXML内置了直接获取指定类型值的方法,无需手动转换:
var km = feuille.Cell("C" + num.Substring(1, 1)).GetValue<int>();
return km;
  1. 增加异常处理(可选)
    如果需要处理值为空或格式异常的情况,可以添加判断逻辑:
var kmCell = feuille.Cell("C" + num.Substring(1, 1));
if (int.TryParse(kmCell.Value?.ToString(), out int intValue))
{
    return intValue;
}
// 根据业务需求处理异常情况,比如返回默认值或抛出异常
return 0;

内容的提问来源于stack exchange,提问作者Roumilhac Clément

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:17:02