如何从ZipArchiveEntry EPPlus C#中获取xls文件



我正试图从ZipArchive获取xls文件,但无法使用EPPLUS 获取

foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry != null)
{                        
string filepath = entry.FullName;
FileInfo fileInfo = new FileInfo(filepath);

//here i got the excel package with the xls file inside the excelPackage 
using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
{                            
//but here impossible de get the worksheet or workbook inside or anything else    
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
int totalColomn = worksheet.Dimension.End.Column;
int nbrsheet = excelPackage.Workbook.Worksheets.Count();
}
}
}

我在调试中得到的ExcelPackage我在excelpackage中看到了调试时的xls文件,但就在我尝试获取工作表时,它退出了,没有异常代码。。。。

使用entryStream 时此处相同


using (var entryStream = entry.Open())
{
//Cant even get the excelpackage, it crash here without exception
using (ExcelPackage excelPackage = new ExcelPackage(entryStream))
{
ExcelWorksheet worksheetest = excelPackage.Workbook.Worksheets.FirstOrDefault();
}
}

这里的小溪似乎也很奇怪。。。entryStream调试

与合作。NET CORE Blazor ServerSide,ePPLUS 4.5

感谢您帮助

entry.FullName是指zip归档中文件的完整路径,而FileInfo描述的是操作系统文件系统中的一个文件,这是完全不同的。您还没有将任何内容提取到操作系统文件系统中,因此FileInfo不会引用实际存在的文件。

尝试使用StreamExcelPackage构造函数,它可以直接从ZipArchiveEntry:中获得

using (var entryStream = entry.Open())
{
using (ExcelPackage excelPackage = new ExcelPackage(entryStream))
{
// ...
}
}

我发现了问题。

那是因为我试图获得一个xls文件,而epplus库无法使用它。。。你必须小心,EPplus不能使用xls文件

所以,你的解决方案Jeff正在工作,这是我的错,没有指定我的excel文件的扩展名。。。抱歉

->带有.xlsx OK,而不是.xls 的EPlus

我的坏。无论如何都要感谢:-(

相关内容

  • 没有找到相关文章

最新更新