我只能保护一张工作表,但是当我尝试保护我的 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/