使用 ExcelDataReader 和 Epplus 访问受保护的 Excel 文件
Access Protected Excel File with ExcelDataReader and Epplus
标题几乎说明了一切。寻找使用 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 似乎没有任何保护相关的方法。
感谢任何提示,谢谢。
编辑:我已经知道密码
通过 EPPlus,您可以使用
excelPackage = new ExcelPackage(new FileInfo(excelFilePath), "mypassword");
ExcelDataReader 现在支持打开受密码保护的工作表。我在他们的 GitHub 上打开了一个 issue 询问他们是否有这样的支持并收到回复说他们没有,但过了一段时间他们添加了对某些密码方法的支持。他们仍然不支持的密码方法的详细信息在 link 中。
使用 ExcelDataReadr
您可以像这样访问受保护的文件:
var conf = new ExcelReaderConfiguration { Password = "yourPassword" };
excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream, conf);
标题几乎说明了一切。寻找使用 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 似乎没有任何保护相关的方法。
感谢任何提示,谢谢。
编辑:我已经知道密码
通过 EPPlus,您可以使用
excelPackage = new ExcelPackage(new FileInfo(excelFilePath), "mypassword");
ExcelDataReader 现在支持打开受密码保护的工作表。我在他们的 GitHub 上打开了一个 issue 询问他们是否有这样的支持并收到回复说他们没有,但过了一段时间他们添加了对某些密码方法的支持。他们仍然不支持的密码方法的详细信息在 link 中。
使用 ExcelDataReadr
您可以像这样访问受保护的文件:
var conf = new ExcelReaderConfiguration { Password = "yourPassword" };
excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream, conf);