背景:
需求: 导出的excel表指定列可编辑,其它列不可编辑。
相关实现代码如下:
// 保护整个工作表
sheet1.protect('yourpassword', {
selectLockedCells: true,
selectUnlockedCells: true,
});
//解锁可编辑列
const unlockColumns = [6,7,8,9,12]
unlockColumns.forEach((columnIndex) => {
sheet1.getColumn(columnIndex).eachCell((cell,rowNumer) => {
if( rowNumer !== 1 ) {// 跳过标题行
cell.protection = { locked: false }
}
})
})
结果: 功能可以满足,但是加上这段代码之后,导出excel表的速度明显变慢,有明显的卡顿现象。请问下有什么方法可以提升导出excel表的速度吗?
尽量减少逐个单元格操作,尝试批量处理单元格。
预先创建一个模板文件,里面已经设置好保护和解锁的列,然后将数据写入模板文件中。
优化代码结构
改进你的代码结构,使其更高效地处理大数据量。
此示例通过批量操作来解锁指定列的单元格,从而提高导出效率。