1. 程式人生 > >NPOI 匯出excel 設定指定列只讀,不能修改

NPOI 匯出excel 設定指定列只讀,不能修改

最近在做一個匯入匯出的功能,匯出後,使用者修改部分列的值,然後匯入更新。為了能夠進行更新,必須對某些列進行限制修改。

用的是NPOI控制元件,hssfworkbook.GetSheetAt(0).ProtectSheet("密碼") 進行上鎖。

問題來了,單純用 ProtectSheet  並不行,還得設定單元格樣式IsLocked

IWorkbook hssfworkbook = new HSSFWorkbook(file);

//鎖定樣式

 ICellStyle cellstyleLock = hssfworkbook .CreateCellStyle();

  cellstyleLock .IsLocked = true;//上鎖   

//解除鎖定樣式

 ICellStyle cellstyleUnLock = hssfworkbook .CreateCellStyle();

   cellstyleUnLock.IsLocked = false;//解鎖

設定好樣式後,然後再遍歷單元格的時候,賦值樣式

  ICell cellItem = row.GetCell(index);//獲取行內單元格    if (cellItem == null) cellItem = row.CreateCell(index);//不存在就建立單元格    

不允許修改,設定樣式:

 cellItem.CellStyle = cellstyleLock;//鎖定

允許修改,設定樣式:

   cellItem.CellStyle = cellstyleUnLock ;//接觸鎖定