c# - 尝试使用 EPPlus 从 ZipArchive 读取 Excel 文件

标签 c# epplus

我正在尝试从 zip 存档中读取 excel 文件:

var excelEntry = archive.Entries.Single(entry => Regex.IsMatch(entry.FullName, @"\.xlsx\z", RegexOptions.IgnoreCase));
using (var excelPackage = new ExcelPackage(excelEntry.Open()))
{
}

但是,我收到 NotSupportedException。

(Exception thrown: 'System.NotSupportedException' in System.dll
Additional information: This operation is not supported.) 

该文件是一个简单的 .xlsx 文件,没有任何保护。 有什么想法吗?

最佳答案

确实是因为 zip 存档流是只读的,而 ExcelPackage 只接受读/写流。

我做了以下调整:

var entryStream = excelEntry.Open();
using (var ms = new MemoryStream())
using (var excelPackage = new ExcelPackage())
{
  entryStream.CopyTo(ms);
  excelPackage.Load(ms);
  ...
}

关于c# - 尝试使用 EPPlus 从 ZipArchive 读取 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50874958/

相关文章:

c# - 使用 EPPLUS 缓慢加载 .CSV 文件

c# - 使用 EPPlus 获取单元格的行号

c# - Shaman.EPPlus + ASP.NET Core MVC - 部分已存在异常

c# - 如何拆分/切片图像给每个图像 ID 以保存在数据库 C#

c# - 如何像我在 Mysql 查询中执行的那样使用 Linq 执行联合

c# - 有没有更好的方法将对象从数据库查询映射到对象?

c# - 在 Epplus (C#) 中创建没有基表的数据透视表

c# - 使用 MS 捆绑的空捆绑

c# - EF 5 基准

c# - EPPlus 公式在不调用 Calculate 的情况下不起作用