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