我正在使用 EPPLUS.dll 来完成我的Excel工作 我尝试使用 AllowSort 和 AllowAutoFilter 属性来保护工作表,但是它不起作用。
worksheet.Protection.AllowSort = true;
worksheet.Protection.AllowAutoFilter = true;
worksheet.Protection.SetPassword("password");
worksheet.Protection.IsProtected = true;
我也尝试了“以下代码”,但没有得到想要的结果
worksheet.Column(1).Style.Locked = true;
Epplus锁定单元默认情况下,锁定单元不能解决我的问题;我唯一需要的是一个受保护的或只读的单元格,同时可以进行排序和允许过滤
任何帮助将不胜感激。
答案 0 :(得分:0)
您是否尝试过将worksheet.Protection.IsProtected = true;
移为代码块中的第一条语句。也许这覆盖了您以前的声明。
https://github.com/pruiz/EPPlus/blob/master/EPPlus/ExcelSheetProtection.cs
以下内容过去对我有用,因为它可以保护工作表,即使其只读。
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
worksheet.Protection.IsProtected = true;
worksheet.View.FreezePanes(2, 1); // freeze header row
worksheet.Protection.AllowSort = true;
worksheet.Cells[worksheet.Dimension.Address].AutoFilter = true;
worksheet.Protection.AllowAutoFilter = true;
我认为要用密码保护它,它必须针对软件包而不是工作表。
因此,如果保存包,请使用.Save重载。
package.Save("password");
或者,如果要另存为ByteArray,则
package.GetAsByteArray("password");