c# - 尝试使用 EPPlus 从 ZipArchive 读取 Excel 文件
问题描述
我正在尝试从 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);
...
}
推荐阅读
- android - 当设备可以在应用程序级别强制使用时,如何避免在我的应用程序中强制使用深色主题?
- sql - 如何检查日期是否在当前财政年度
- java - 将 CLOB 转换为 String 会删除所有换行符
- android - Android workmanager 最小间隔解决方法
- python - PythonSSH 到多台服务器
- python - 使用代理时 python 请求的问题
- akka - Akka流Http singleRequest在等待响应时阻塞整个流
- amazon-web-services - Sagemaker Jupyter Notebook 无法连接到 RDS
- php - 直接从gz资源读取数据
- c++ - 带有特定分配器的 std::uninitialized_move