我在Azure存儲中有一個zip文件,裏面有一個Excel文件。我想讀取excel文件,而不用使用C#下載文件。 我正在使用MemoryStream。代碼是:在Azure存儲中的Zip中讀取Excel文件。 C#
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文件? 謝謝。
xlsx文件本質上是一個zip文件。 – stuartd
爲什麼期望一個'TextReader'或任何其他讀者打開一個.xls文件? Excel文件是帶有一些XML內容的壓縮檔案。要打開它,請使用像EPPlus – jAC
這樣的excel框架。是不是'DownloadToStream'下載文件? – stuartd