OpenXML-保护所有工作表

本文关键字:工作 保护 OpenXML- | 更新日期: 2023-09-27 18:29:26

我只能保护一张工作表,但当我试图保护Excel文档中的所有工作表时,我在尝试附加SheetProtection时出错。

如果我理解正确,我必须在SheetData后面附加SheetProtection。这是我的代码:

SheetProtectiond sheetProtection = 
  new SheetProtection                              
  {
    Sheet = true,
    Objects = true,
    Scenarios = true,
    Password = GetSheetPassword(workbookPassword)
  };
foreach(Sheet sheet in sheet)
{
  WorksheetPart worksheetPart = 
    GetWorksheetPartBySheetID(m_SpreadsheetDocument.WorkbookPart, sheet.Id);
  worksheetPart.Worksheet.InsertAfter(sheetProtection, 
    worksheetPart.Worksheet.Descendants<SheetData>().LastOrDefault());                      
}

OpenXML-保护所有工作表

通过为每张图纸创建一个SheetProtection实例来解决此问题。