8

标题几乎说明了一切。寻找一种使用 ExcelDataReader 和 Epplus 访问受密码保护的 excel 文件的方法,但找不到正确的答案。

如果使用 ExcelDataReader,我的代码看起来像

                excelStream = File.Open(excelFilePath, FileMode.Open, FileAccess.Read);
                excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream);
                excelDataSet = excelReader.AsDataSet();

如果使用 EPPlus 我的连接代码看起来像

            excelPackage = new ExcelPackage(new FileInfo(excelFilePath));
            excelWorkbook = excelPackage.Workbook;
            excelSheet = excelWorkbook.Worksheets[1];

EPPlus 有一些与保护相关的方法,但我不知道如何使用它们。ExcelDataReader 似乎没有任何保护相关的方法。

任何提示表示赞赏,谢谢。

编辑:我已经知道密码

4

2 回答 2

7

使用 EPPlus,您可以使用

excelPackage = new ExcelPackage(new FileInfo(excelFilePath), "mypassword");

ExcelDataReader 现在支持打开受密码保护的工作表。我在他们的 GitHub 上打开了一个问题,询问他们是否有这样的支持,并收到回复说他们没有,但过了一段时间他们增加了对某些密码方法的支持。他们仍然不支持的密码方法的详细信息在链接中。

于 2017-07-07T20:54:10.570 回答
5

ExcelDataReadr可以像这样访问受保护的文件:

var conf = new ExcelReaderConfiguration { Password = "yourPassword" };
excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream, conf);
于 2018-06-11T10:45:51.783 回答