如何解决如何从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();
}
}
}
the ExcelPackage i get in debug 我在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 Debug
使用.NET CORE Blazor ServerSide,ePPLUS 4.5
感谢您的帮助
解决方法
entry.FullName
指的是zip存档内的文件的完整路径,而FileInfo
则描述了操作系统文件系统中的文件,这是完全不同的事情。您尚未将任何内容提取到OS文件系统,因此FileInfo
不会引用实际存在的文件。
尝试使用ExcelPackage
的{{1}}构造函数,您可以直接从Stream
获取它:
ZipArchiveEntry
,
我找到了问题。
那是我试图获取一个xls文件,而epplus库无法使用它... 您必须小心,EPplus不能使用xls文件
所以,您的解决方案Jeff在工作,这是我的错,没有指定我的excel文件的扩展名...对不起
->具有.xlsx OK而不是.xls
的EPlus我的坏。 还是谢谢你:-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。