报错截图如下
如上图错误实际上单元格值是null,固你要对创建一个单元格并赋值,看下面代码即可(如果不明白可以加QQ823783931)
在C#中使用NOPI 库操作Excel时,如果你尝试访问一个不存在的单元格,并且没有进行适当的null检查,就会遇到“未将对象引用设置到对象的实例”的异常,这是因为你试图在null引用上调用方法或属性。
为了避免这个问题,你需要先检查GetRow(i)是否返回了一个有效的IRow对象,然后再检查GetCell(2)是否返回了一个有效的ICell对象。下面是一个示例代码,展示了如何安全地访问一个单元格,即使它可能是null:
using NPOI.SS.UserModel; // 引入必要的NPOI命名空间
using NPOI.XSSF.UserModel; // 引入XSSF相关的命名空间,如果你正在处理.xlsx文件
// ... 其他必要的using指令 ...
// 假设sheet是一个有效的ISheet对象
ISheet sheet = ...; // 获取或创建sheet对象
int rowIndex = i; // 要访问的行索引
int columnIndex = 2; // 要访问的列索引(从0开始)
// 获取行,如果行不存在则返回null
IRow row = sheet.GetRow(rowIndex);
// 如果行是null,则可能需要创建它(取决于你的逻辑)
if (row == null)
{
row = sheet.CreateRow(rowIndex);
}
// 获取单元格,如果单元格不存在则返回null
ICell cell = row.GetCell(columnIndex);
// 如果单元格是null,则创建一个新的单元格并设置其值(如果需要)
if (cell == null)
{
cell = row.CreateCell(columnIndex);
cell.SetCellValue("默认值"); // 设置单元格的值,这里是一个示例
}
// 现在你可以安全地使用cell对象了
string cellValue = cell.StringCellValue; // 创建单元格的值赋值给cellvalue