背景:
项目技术栈: vue3 + vite;
导出数据用到的第三方库:exceljs;
- 有一个列表,前端批量导出,生成excel文件,诸如:
- 但是生成的的excel文件每列都可以修改,和预期不符,
预期效果: 序号、班级、姓名都不可以修改,只有得分列可以修改。
背景:
项目技术栈: vue3 + vite;
导出数据用到的第三方库:exceljs;
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答2.2k 阅读✓ 已解决
5 回答858 阅读
4 回答1.2k 阅读✓ 已解决
要确保只保护某些列,而不是整个工作表,并且允许用户编辑“得分”列,你可以尝试以下方式。这种方式不会保护整个工作表,而是只保护特定的单元格。这可以确保用户在试图编辑受保护单元格时会被提示输入密码,而非直接禁止操作。
解释:
1.保护整个工作表:通过 worksheet.protect('yourpassword', { ... }) 方法保护整个工作表。
2.解锁“得分”列:通过 worksheet.getColumn(4).eachCell((cell, rowNumber) => { ... }) 方法遍历“得分”列的每个单元格,并将其 protection.locked 属性设置为 false 以解锁该列。
3.锁定其他列:通过 worksheet.getColumn(col).eachCell((cell, rowNumber) => { ... }) 方法遍历其他列的每个单元格,并将其 protection.locked 属性设置为 true 以锁定这些列。