Azureストレージにzipファイルがあり、その中にExcelファイルがあります。私はC#を使ってファイルをダウンロードせずにExcelファイルを読みたいと思っています。 私はMemoryStreamを使用しています。コードは次のとおりです。Azure Storageの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にあります。それはExcelを読み取ることができないので、私はStreamReaderをはテキストリーダーであることを読ん
:それはのようなので、何か非読み取り可能なテキストを示しています。 しかし、それに代わるものは何ですか?
など、別の方法では、Azureにあるzipファイル内のExcelファイルをどのように読み取ることができますか? ありがとうございます。
xlsxファイルは、基本的にそれ自身がzipファイルです。 – stuartd
なぜ、 'TextReader'や他の読者が.xlsファイルを開くのを期待していますか? Excelファイルは、XMLコンテンツを含む圧縮されたアーカイブです。それを開くには、EPPlusのようなExcelフレームワークを使用してください – jAC
とにかくファイルをダウンロードする 'DownloadToStream'はありませんか? – stuartd