2012-03-29 2 views
2

하나의 시트 만 보호 할 수 있지만 Excel 문서의 모든 시트를 보호하려고 할 때 SheetProtection을 추가하는 동안 오류가 발생합니다.OpenXML - 모든 시트 보호

제대로 이해했다면 SheetData 다음에 SheetProtection을 추가해야합니다. 각 시트에 대한 SheetProtection의 인스턴스를 생성하여이 문제를 해결

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());      
} 
+3

질문 자체를 변경하는 대신 질문에 대한 대답을 만드는 것이 좋습니다. – Flowerking

답변