[英]Asp.net WebApi Aspose.Cells - export and download excel
[英]Having trouble saving Excel spreadsheet from asp.net web api backend using Aspose.Cells, and Angular 2 front end
在我的ASP.NET Web API后端上,我有Aspose.Cells制作電子表格。 我已經將其保存在本地,並且電子表格很好,但是現在我試圖將其托管在服務器上,因此我必須通過HTTP響應發送電子表格。 在我的Web API路線的末尾,我有以下代碼:
workbook.Save(HttpContext.Current.Response, output.xls, ContentDisposition.Inline, new XlsSaveOptions());
HttpContext.Current.Response.End();
如您所見,主體只是亂碼,我假設只是二進制。 在客戶端上,我的訂閱方法內部的打字稿接收響應,如下所示:
var blob = new Blob([data._body], { type: 'application/vnd.ms-excel' });
var url = window.URL.createObjectURL(blob);
window.open(url);
這樣會保存文件,其名稱類似於f811c3bc-2eea-4394-b463-93c61ccc7677.xls,而在excel警告我該文件的格式與擴展名不同之后,電子表格中的文件看上去又像是亂七八糟的:
“詳細信息”和“現場細節”這兩個詞應該放在其中,因此至少我想要顯示一些內容,但顯然不完全是。 我究竟做錯了什么? 這應該是一個包含20個以上標簽的電子表格,其中幾個標簽最多可包含數千行,而其他標簽則少於十個。
編輯:我已經解決了以后搜索任何人的問題。 在HTTP請求選項上,您需要將響應類型設置為ArrayBuffer。 我也切換到使用Filesaver.js,盡管不確定是否確實需要這樣做。
恐怕Web瀏覽器無法理解XLS(Excel 2003)和XLSX(Excel 2007及更高版本)格式。 只有Microsoft Excel可以理解。 這意味着您無法在Web瀏覽器中顯示Excel文件。 您可以只要求用戶下載它們,然后用戶必須自己在Microsoft Excel應用程序中打開它們。
但是,某些瀏覽器理解(或具有插件) Pdf格式 。 如果要顯示Excel文件的內容,請使用Aspose.Cells將其渲染為Pdf,然后,如果用戶使用的是Google Chrome,FireFox等,則可以內聯查看它。
無論如何,您必須將其作為附件發送。 請像這樣更改您的代碼。
workbook.Save(HttpContext.Current.Response, output.xls,ContentDisposition.Attachment, new XlsSaveOptions());
HttpContext.Current.Response.End();
注意: 我在Aspose擔任開發人員布道者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.