NPOI row.Cells[i] 的坑


我有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個單元格被賦值,而不覆蓋其它的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM