OpenXML - защита всех листов - PullRequest
2 голосов
/ 29 марта 2012

Я могу защитить только один лист, но когда я пытаюсь защитить все листы в моих документах 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( ) );                      
}

1 Ответ

0 голосов
/ 02 апреля 2012

Решил это, создав экземпляр SheetProtection для каждого листа.

...