Я могу защитить только один лист, но когда я пытаюсь защитить все листы в моих документах Excel, я получаю сообщение об ошибке при попытке добавить SheetProtection.
Если я правильно понял, я должен добавить SheetProtection после SheetData.
Вот мой код:
SheetProtectiond wSheetProtection = new SheetProtection
{
Sheet = true,
Objects = true,
Scenarios = true,
Password = GetSheetPassword( wWorkbookPassword )
};
foreach( Sheet sheet in wSheet )
{
WorksheetPart worksheetPart = GetWorkSheetPartBySheetID(m_SpreadsheetDocument.WorkbookPart, sheet.Id );
worksheetPart.Worksheet.InsertAfter( wSheetProtection, worksheetPart.Worksheet.Descendants<SheetData>( ).LastOrDefault( ) );
}