如何从 ZipArchiveEntry EPPlus C# 获取 xls 文件
how to get xls file from a ZipArchiveEntry EPPlus C#
我正在尝试从 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
描述 [=23] 文件系统中的一个文件=],这是完全不同的事情。您尚未将任何内容提取到 OS 文件系统,因此 FileInfo
不会引用实际存在的文件。
尝试使用 Stream
的 ExcelPackage
构造函数,您可以直接从 ZipArchiveEntry
:
using (var entryStream = entry.Open())
{
using (ExcelPackage excelPackage = new ExcelPackage(entryStream))
{
// ...
}
}
我找到问题了。
我试图获取一个 xls 文件,但 epplus 库无法使用它...
你必须要小心,EPplus 不支持 xls 文件
那么,您的解决方案 Jeff 正在运行,这是我的错,没有指定我的 excel 文件的扩展名...抱歉
-> 带有 .xlsx 的 EPlus OK,不是 .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
描述 [=23] 文件系统中的一个文件=],这是完全不同的事情。您尚未将任何内容提取到 OS 文件系统,因此 FileInfo
不会引用实际存在的文件。
尝试使用 Stream
的 ExcelPackage
构造函数,您可以直接从 ZipArchiveEntry
:
using (var entryStream = entry.Open())
{
using (ExcelPackage excelPackage = new ExcelPackage(entryStream))
{
// ...
}
}
我找到问题了。
我试图获取一个 xls 文件,但 epplus 库无法使用它... 你必须要小心,EPplus 不支持 xls 文件
那么,您的解决方案 Jeff 正在运行,这是我的错,没有指定我的 excel 文件的扩展名...抱歉
-> 带有 .xlsx 的 EPlus OK,不是 .xls
我的错。 无论如何谢谢:-)