2
私は1枚のシートしか保護できませんが、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());
}
質問自体を変更するのではなく、質問の回答を作成する方が良いです。 – Flowerking