终于解决了,、
1.用excel新建一个文件作为模板,可以是空内容,在excel中对文件进行加密,如密码为:12345。
2.在NPOI读取前,调用:Biff8EncryptionKey.CurrentUserPassword = "12345";
3.在读取后调用:hssfworkbook.WriteProtectWorkbook("new Password", "user");
1
2
3
4
5
6
7
8
9
10
11
12
|
string
path =
@"E:\test.xls"
;
//刚用excel新建的模板文件
FileStream file =
new
FileStream(path, FileMode.Open, FileAccess.Read);
Biff8EncryptionKey.CurrentUserPassword =
"12345"
;
//打开前调用
HSSFWorkbook hssfworkbook =
new
HSSFWorkbook(file);
hssfworkbook.WriteProtectWorkbook(
"123456"
,
""
);
//设置新密码
file.Close();
ISheet sheet = hssfworkbook.GetSheetAt(0);
// 插入数据操作。。。
//保存文件
FileStream savefile =
new
FileStream(
@"E:\test1.xls"
, FileMode.Create);
hssfworkbook.Write(savefile);
savefile.Close();
|
我试过不用模板,而直接新建workbook,然后设置密码,结果不管用,不知道什么原因,不过问题总算还是解决了。
终于解决了,
1.用excel新建一个文件作为模板,可以是空内容,在excel中对文件进行加密,如密码为:12345。
2.在NPOI读取前,调用:Biff8EncryptionKey.CurrentUserPassword = "12345";
3.在读取后调用:hssfworkbook.WriteProtectWorkbook("new Password", "user");……
必须用模板,有点蛋疼啊