我有一個端點應該從 excel 檔案回傳一個值。
在本地主機上,這通過UseStaticFiles使用此代碼啟用中間件并將 excel 檔案添加到Resources檔案夾中來作業:
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(env.ContentRootPath, "Resources")),
RequestPath = "/Resources"
});
但是,當我在 Azure 托管中發布它時,它會顯示此錯誤,并且我無法訪問我的應用程式或此 excel 檔案。

洗掉UseStaticFiles中間件后,應用程式運行良好,除了缺少 excel 檔案。
那么我應該如何在 Azure 環境中發布和訪問這個檔案呢?
uj5u.com熱心網友回復:
UseStaticFiles僅該方法,我參考“啟用靜態檔案服務”。這不能讓您從 Excel 檔案中的特定單元格回傳值。
如果您正在尋找提供靜態檔案的服務,例如,您可以查看將檔案放入 Azure 存盤并使用所需的公共訪問級別。
如果您希望從 Excel 檔案中讀取資料,您可能需要查看一種不需要互操作的方法,因為您將無法在應用服務上使用 Excel。
選項是使用OpenXML XML SDK。
SDK 基于System.IO.Packaging API構建,并提供強型別類來運算子合 Office Open XML 檔案格式規范的檔案。
[...]
Open XML 檔案格式對開發人員很有用,因為它們是一種開放標準并且基于眾所周知的技術:ZIP 和 XML。
另一個是像ClosedXML這樣的開源解決方案,它是 OpenXML 的包裝器,可以更輕松地使用它們。
ClosedXML 是一個用于讀取、操作和寫入 Excel 2007 (.xlsx、.xlsm)檔案的 .NET 庫。它旨在提供一個直觀且用戶友好的界面來處理底層 OpenXML API。
uj5u.com熱心網友回復:
我結合清理 Windows Azure 網站和訪問 wwwroot 檔案夾來提出解決方案。
不需要中間件,只需使用IWebHostEnvironment服務,我就可以訪問所需的 excel 檔案,該檔案現在wwwroot/Resources/位于我的專案中的目錄中。
private readonly IWebHostEnvironment _env;
public ProjectService(IWebHostEnvironment env)
{
_env = env;
}
public double GetExcelValue()
{
string excelFilePath = Path.Combine(_env.WebRootPath, "Resources/file.xlsx");
(...)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395814.html
