使用NPOI密码保护的Excel

时间:2013-11-05 10:22:44

标签: c# excel passwords npoi

我有一个.net c#应用程序,我可以在按钮点击下载一个excel文件。 使用的代码是

using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;

然后是一些代码。

HSSFWorkbook book = new HSSFWorkbook();
var sheet = book.CreateSheet("StatusReport");

用于格式化excel的一些代码,然后是用于下载excel的一些代码。

 HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Charset = "utf-16";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250");
            HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "MpiDischargeReport.xls"));
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            book.Write(HttpContext.Current.Response.OutputStream);
            HttpContext.Current.ApplicationInstance.CompleteRequest();

这将帮助我下载excel,但我需要将excel作为密码保护的。 请帮忙。

2 个答案:

答案 0 :(得分:2)

这不适用于1.2.5可能在2.0中工作 试试

var sheet = book.CreateSheet("StatusReport");
            sheet.ProtectSheet("Password");

答案 1 :(得分:1)

NPOI是POI-Java-Libary的.net克隆。所以我查看了“HSSFWorkbook”类的POI文档:
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html
正如您所看到的,有一种名为“writeProtectWorkbook”的方法可用于密码保护工作簿。

另请查看“HSSFSheet”类的文档:
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html
正如您所看到的,有一种名为“protectSheet”的方法可用于密码保护工作表。
我从未尝试过。但它可以帮助吗?