我在Azure存储中有一个zip文件,里面有一个Excel文件 . 我想在不使用C#下载文件的情况下读取excel文件 . 我正在使用MemoryStream . 代码是:
public void ReadZipStream(CloudBlockBlob blockBlob)
{
using (var msZippedBlob = new MemoryStream())
{
blockBlob.DownloadToStream(msZippedBlob);
using (ZipArchive zip = new ZipArchive(msZippedBlob))
{
foreach (ZipArchiveEntry entry in zip.Entries)
{
if (entry.FullName.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase))
{
using (StreamReader sr = new StreamReader(entry.Open()))
{
// sr
}
}
}
}
}
}
ZipArchive正常工作,它显示zip文件中的所有数据 . 问题出在SteamReader上 . 它显示了一个不可读的文本,如下所示:
我读到StreamReader是一个文本阅读器,所以它无法读取Excel . 那么它的替代方案是什么呢?
或者以另一种方式,如何在Azure中的zip文件中读取Excel文件?谢谢 .
1 回答
您可以将NPOI用于读/写xls,xlsx,如下所示:
Result
AFAIK,根据您的情况,没有更好的方法来实现它 . 此外,您还可以参考SpreadsheetLight或Aspose.Cells for .NET等 .