我只能保护一张图纸,但是当我尝试保护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());
}

最佳答案

通过为每个工作表创建一个SheetProtection实例来解决此问题。

关于c# - OpenXML-保护所有工作表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9922743/

10-13 04:08