使用EPPLUS进行密码保护的Excel下载

8

我正在使用 EPPLUS Excel库以Excel格式导出数据。我希望当下载Excel文件时,它要求输入密码。我已经尝试了以下代码。

FileInfo newFile = new FileInfo("sample.xlsx");
using (ExcelPackage package = new ExcelPackage(newFile)
{
    ExcelWorksheet ws = package.Workbook.Worksheets.Add("demo");
    ws.Cells[A1].LoadFromDataTable(dataTable, false);
    package.Workbook.Protection.SetPassword("EPPLUS");
    package.Save();
}
4个回答

22

只需要使用附带密码选项的 .Save 重载:

package.Save("password");

回复评论

如果要通过 byte 数组保存并设置密码,方法与之前类似:

Byte[] bin = pck.GetAsByteArray("password");
System.IO.File.WriteAllBytes(fullFilePath, bin);

谢谢Ernie!我在使用模板编写Excel时遇到了类似的问题。我的代码是' Byte[] bin = pck.GetAsByteArray(); System.IO.File.WriteAllBytes(fullFilePath, bin);',那我该如何添加密码呢? - preeti jain
它正在工作。但是当我从邮件中打开Excel时,它会显示一个恢复文件的警告。 - Rinku Choudhary
@rinkuChoudhary 没有更多信息很难说。请发布一个新的问题并附上您的代码,希望其他人能够帮助您。 - Ernie S

5

虽然没有文档记录,但你可以按照以下方式进行操作:

package.Encryption.Password = "your password here";

然后使用您选择的Save()GetAsByteArray()函数来保存您的包


0
如果您要将Excel包保存到内存流(以作为电子邮件附件发送),您需要执行以下操作:
excelPackage.SaveAs(memoryStream, "pa$$w0rd");

0

package.GetAsByteArray("sometest"); ---> 这将使用密码“sometest”保护您的Excel表格 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接