【问题标题】:Password Protected Excel Download using EPPLUS使用 EPPLUS 下载受密码保护的 Excel
【发布时间】:2016-02-09 07:01:58
【问题描述】:

我正在使用 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();
}

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 epplus


    【解决方案1】:

    只需要使用.Save重载和密码作为选项:

    package.Save("password");
    

    对评论的回应

    如果通过byte 数组保存,则应用密码非常相似:

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

    【讨论】:

    • 谢谢厄尼!!我在使用模板编写 excel 时遇到了类似的问题,我的代码是 ' Byte[] bin = pck.GetAsByteArray(); System.IO.File.WriteAllBytes(fullFilePath, bin);'那么如何添加密码呢?
    • 它正在工作。但是当我从邮件中打开 excel 时,它会向我显示恢复文件的警告。
    • @rinkuChoudhary 没有更多信息很难说。用你的代码发布一个新问题,希望人们能提供帮助。
    【解决方案2】:

    它没有记录,但您可以执行以下操作:

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

    然后使用您选择的Save()GetAsByteArray() 提供您的包裹

    【讨论】:

      【解决方案3】:

      如果您将 excel 包保存到 MemoryStream 中(作为电子邮件附件发送),您必须这样做:

      excelPackage.SaveAs(memoryStream, "pa$$w0rd");
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-16
          • 1970-01-01
          • 1970-01-01
          • 2020-02-19
          • 2011-02-06
          • 1970-01-01
          • 1970-01-01
          • 2020-06-18
          相关资源
          最近更新 更多