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