我有A行B列的EXCEL表格:
獲取一行數據:
IRow row=sheet.GetRow(i);
正常是這樣的
row.Cells.Count = B;
但由於會存在沒有激活的單元格,導致 row.Cells.Count <=B。
坑是這樣的:
當你想要對某行第2個(或其他)單元格進行賦值時,我是這樣做了:
row.Cells[1].SetCellValue("######");
如果恰巧這行的所有單元格都是激活的,那這樣做的結果是沒錯的。
但如果剛好第2個單元格(你想的)沒有被激活過,這將導致第2個激活的單元格(具體哪個不確定)被覆蓋。
正確做法:
//真正的第2個單元格
public ICell GetCell(int index)
{
ICell cell = this.Row.FirstOrDefault(n => n.ColumnIndex == index);
if (cell == null)
{
cell = this.Row.CreateCell(index);
}
return cell;
}
這樣就保證第2個單元格被賦值,而不覆蓋其它的。
