本文使用com组件,在vs中需要对项目添加Microsoft Excel *.0 Object Library引用,我是用的版本是16.0
加密方法,参数需要 excel文件路径,输出文件保存目录(注意:目录需要已创建),加密密码
private static void EncryptExcelFile(string inputFilePath, string outputFilePath, string password)
{
//打开文件
Application app = new Application();
Workbook workbook = app.Workbooks.Open(inputFilePath);
//获取文件名
string fileName = Path.GetFileName(inputFilePath);
//设置密码
workbook.Password = password;
//保存到输出目录
workbook.SaveAs(outputFilePath + fileName);
//结尾记得关闭服务,不然会导致excel在后台开启
workbook.Close();
app.Quit();
}
解密方法,参数和加密一样都是 excel文件路径,输出文件保存目录(注意:目录需要已创建),加密密码,密码用来打开excel,与加密方法比仅是打开方法有些区别,需要用密码打开,将密码设置为空,重新保存即可取消密码
private static void DecryptExcelFile(string inputFilePath, string outputFilePath, string password)
{
//打开文件
Application app = new Application();
Workbook workbook = app.Workbooks.Open(inputFilePath, Missing.Value, false, Missing.Value, password);
//获取文件名
string fileName = Path.GetFileName(inputFilePath);
//取消密码
workbook.Password = "";
//保存到输出目录
workbook.SaveAs(outputFilePath + fileName);
//结尾记得关闭服务,不然会导致excel在后台开启
workbook.Close();
app.Quit();
}