使用EPPlus从ZipArchive中读取Excel文件

3

我正尝试从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 文件。 有什么想法吗?

我现在看到ziparchive处于只读模式,可能与ExcelPackage需要读/写流有关? - pelican_george
1个回答

3

实际上是由于zip归档流只能读取,而ExcelPackage仅接受读/写流。

我进行了如下调整:

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

非常感谢您提供的解决方案! - Ivan B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接