如何允许用户使用EPPlus和c#在受保护的Excel中编辑范围?

时间:2016-07-26 12:38:05

标签: c# excel winforms epplus

我在winform(C#)项目中使用EPPlus导出受保护的Excel工作表。现在我希望功能允许用户使用相同的插件编辑该受保护的Excel工作表中的范围。 如果您提供代码片段会很棒。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

var fileName = "sample.xlsx";
var fileInfo = new FileInfo(fileName);
using (var excel = new ExcelPackage(fileInfo))
{
    var ws = excel.Workbook.Worksheets.Add("sheet1");

    ws.Protection.IsProtected = true;
    ws.ProtectedRanges.Add("editable", new ExcelAddress("C:N"));
    excel.Save();
}

答案 1 :(得分:1)

我知道回复很晚,但可能会帮助他人。我遇到了类似的问题,并努力在受保护的工作表中进行排序和自动过滤。

在保护工作表之后,我在下面添加了两个设置,这些设置允许排序和自动筛选。

 ws.Protection.IsProtected = True
 ws.Protection.AllowSort = True
 ws.Protection.AllowAutoFilter = True

但是,在我的情况下,下一个要求是解锁一些列以进行编辑,我使用以下方法实现了这一点:

ws.Column(12).Style.Locked = False 

如果您有范围,则可以尝试以下操作:

  For Each cell In ws.Cells("B1:C8")
                
                    cell.Style.Locked = False
              
  Next