最近在做一个导入导出的功能,导出后,用户修改部分列的值,然后导入更新。为了能够进行更新,必须对某些列进行限制修改。
用的是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 ;//接触锁定
本文介绍如何使用NPOI库在Excel中实现单元格的锁定与解锁功能,通过设置单元格样式来限制用户编辑特定列,适用于需要保护数据但允许用户修改部分内容的场景。
6959

被折叠的 条评论
为什么被折叠?



