写在前面
在导出Excel文件的时候,为了防止文件内容被篡改,这时候就需要对Excel设置工作簿保护和工作表保护,本文使用的是Spire.XLS的免费版本来实现,免费版本是受限的,但是一般情况下已经够用了。
通过NuGet引入FreeSpire.XLS类库
代码实现
public class ExcelProtector
{
public static void ProtectWookbook(string filePath)
{
var password = "test-password";
var workbook = new Workbook();
workbook.LoadFromFile(filePath);
workbook.Protect(password);
workbook.Worksheets[0].Protect(password);
var protectedFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileName(filePath));
workbook.SaveToFile(protectedFilePath, ExcelVersion.Version2007);
}
}
调用示例:
var filePath = @"D:\Projects\xxx\test.xls";
ExcelProtector.ProtectWookbook(filePath);
执行结果
工作簿已经被成功加密,需要输入设定的密码才能打开。
指定的工作表也被成功加密保护,无法对被保护的单元格进行任何编辑操作。