2

我有一个 .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 设置为受密码保护的 Excel。请帮忙。

4

2 回答 2

2

这在 1.2.5 中不起作用 可能在 2.0 中起作用

var sheet = book.CreateSheet("StatusReport");
            sheet.ProtectSheet("Password");
于 2013-11-05T13:55:59.383 回答
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”的方法",您可以使用密码保护工作表。

我从来没有试过。但这会有所帮助吗?

于 2013-11-05T12:47:24.607 回答