代码之家  ›  专栏  ›  技术社区  ›  Neil

ClosedXML保存工作簿以提示只读打开

  •  1
  • Neil  · 技术社区  · 7 年前

    我见过 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. */ });
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Francois Botha    7 年前

    https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.filesharing.readonlyrecommended?view=openxml-2.8.1

        private void GeneratePartContent(WorkbookPart part)
        {
            FileSharing fileSharing1 = new FileSharing(){ ReadOnlyRecommended = true };
            workbook1.Append(fileSharing1);
            part.Workbook = workbook1;
        }