将创建的 excel 文件保存到 azure blob 容器。路径问题

时间:2021-01-12 21:38:49

标签: azure-functions azure-blob-storage

我使用 Azure 函数创建了一个 excel 文件,并尝试将其保存到我的 Azure Blob 容器中。保存它的代码是...

sl.SaveAs(filepath);

问题是我不知道为变量文件路径放置什么。当我将其保存在开发中的本地硬盘驱动器上时,我使用此路径有效...

string filepath=@"C:\Users\xxx\source\repos\xxx\xxx\temp\x.xlsx";

在 Azure 中,如果我转到 blob 容器的属性,我会看到这一点。 https://abc.blob.core.windows.net/xyz

我知道我在这里遗漏了一些简单的东西。现在我正在使用 VS2019 在本地以调试模式运行,不确定是否是这个问题。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我们无法使用 SaveAs 方法将您的 excel 文件直接保存到 Storage

我猜您使用了 SpreadsheetLight 程序集。请参考以下代码,您可以先将您的 Excel 文件保存到本地,然后作为流读取:

            String filePath = "D:\\document\\MahNewShoes.xlsx";
            using (SLDocument sl = new SLDocument())
            {
                sl.SetCellValue("B3", "It costs what for a Jimmy Choo?!?");
                sl.SaveAs(filePath);
            }

            string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");
            BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
            BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("test");
            containerClient.CreateIfNotExists();
            BlobClient blobClient = containerClient.GetBlobClient("MahNewShoes.xlsx");
            using FileStream uploadFileStream = File.OpenRead(filePath);
            await blobClient.UploadAsync(uploadFileStream, true);
            uploadFileStream.Close();