【发布时间】:2017-09-22 03:15:27
【问题描述】:
我使用 ignite ui excel 库使用 JavaScript 创建了一个 excel 工作簿。但不幸的是,我没有找到任何方法在他们的库中将 excel 的列/行设为只读。在 JavaScript/Jquery 中创建 excel 工作表之前,我们是否可以将列设为只读?
【问题讨论】:
标签: javascript excel readonly cells
我使用 ignite ui excel 库使用 JavaScript 创建了一个 excel 工作簿。但不幸的是,我没有找到任何方法在他们的库中将 excel 的列/行设为只读。在 JavaScript/Jquery 中创建 excel 工作表之前,我们是否可以将列设为只读?
【问题讨论】:
标签: javascript excel readonly cells
概述:
我正在使用 nodejs 和 exceljs,我在我的 xlsx 文件中搜索保存新行数据,而文件在 Windows 10 上打开以读取信息(不保存),但由于 excel 锁定文件我无法要写入文件,exceljs 向我抛出了异常( Error : EBUSY: resource busy or locked)。我在 exceljs 上搜索属性“ReadOnlyRecommended”以使用 ReadOnlyRecommended = true 保存文件,这样我可以读取文件并同时在其上写入(在原始文件中,因为它是只读的),但不幸的是exceljs 没有这样的选项。因此,经过长时间的搜索,我使用来自的fs.chmod 实现了这一目标
const fs = require('fs'); 当我第一次创建或编辑时,我使用 fs.chmodSync(excelFilePath, 0o600); 以便能够在文件上写入,但是当我完成写入时,我使用 fs.chmodSync(excelFilePath, 0o400); 将文件设置为只读,这样当用户打开时excel文件处于只读模式,因此excel不会锁定文件。
我希望这对某人有所帮助。
【讨论】:
我通过以下代码/步骤实现了这一点:
首先使用代码保护整个 Excel 工作表:
sheet.protect();
{sheet 是我的工作表名称}
然后通过使用代码解锁excel表格的某些单元格:
sheet.getCell('H'+j).cellFormat().locked(false);
{其中H是列名,j是行号,整数值}
希望对其他人有所帮助。
【讨论】: