NPOI 匯出excel 設定指定列只讀,不能修改
阿新 • • 發佈:2018-12-16
最近在做一個匯入匯出的功能,匯出後,使用者修改部分列的值,然後匯入更新。為了能夠進行更新,必須對某些列進行限制修改。
用的是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 ;//接觸鎖定