使用NPOI进行密码保护的Excel

3

我可以帮您翻译以下关于IT技术的内容。以下是需要翻译的内容:

我有一个.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个回答

3

这在1.2.5版本中不起作用,但可能在2.0版本中有效。 请尝试。

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

1
NPOI是POI-Java-Library的.NET克隆版。因此,我查看了POI文档中的“HSSFWorkbook”类:
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”的方法来密码保护工作表。

我从未尝试过,但也许它会有所帮助?

好的,我会尝试并告诉你结果。 非常感谢你宝贵的时间和努力。 - ManjuVijayan
1
我也试了一下。似乎只是保护了工作簿/工作表,防止进行修改。但用户仍然可以在不输入密码的情况下打开并阅读它。 - tveng

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