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 ;//接觸鎖定

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章