我见过
IXLWorksheet.Protect()
和
XLWorkbook.Protect()
-这些选项可以正确地保护工作簿,但仍然默认用户以R/W访问权限打开。这是一个问题,因为它写锁定文件和我的进程不能覆盖它,直到用户关闭excel。
This question
XLWorkbook.SaveAs(SaveOptions)
不包括这个。也许我找不到关于这个选项的closedxml文档,但我相信这就是我需要的选项。
根据
this answer
附加的github/MSDN链接OpenXML不支持密码保护,但是除了第一个链接的问题,我没有看到任何关于readonly open的信息。
代码示例:
XLWorkbook wb = new XLWorkbook();
var ws = wb.AddWorksheet("My Sheet");
// ... add to worksheet
ws.Protect("my-worksheet-password");
wb.SaveAs("C:\\my-workbook.xlsx", new SaveOptions { /* In OpenXML the option would exist during this save step. */ });