我使用 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 在本地以调试模式运行,不确定是否是这个问题。
任何帮助将不胜感激!
答案 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();