c# - OpenXML - 保护所有工作表

标签 c# asp.net openxml-sdk

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

相关文章:

c# - 在 C# 中创建新的 Excel 应用程序时出现 "Class not registered"错误

c# - 查找单引号中包含的所有文本(字符、数字、特殊字符)

c# - 如何从对象列表中获取项目类型和成员?

c# - 使用 LinkBut​​ton 时禁用验证控件

asp.net - 当存在打开的 ASP.NET 4.5 Websocket 时,IIS 应用程序池无法回收

c# - 删除一个 altChunk

excel-2007 - 如何使用 Open XML SDK 2.0 向 Excel 2007 中的单元格添加注释?

c# - 具有共享通用方法的两种可能类型的参数的通用方法

.net - 如何从 Excel 工作簿中删除宏?

c# - JWT - 如何将私钥传递给 "SigningCredentials"以构建 SecurityTokenDescriptor?