Ⅰ 關於前端如何導出後台傳來的excel介面
題主所說的導出指的是讓前端去下載後台的Excel還時還要有其他操作呢?
如果單純去下載,可以基於XMLHttpRequest請求,請求一個伺服器或者後端的Excel文件,然後設置responseType為blob二進制流來傳輸。例如:
var excelFilePath = 'resources/Excel/importExcel.xlsx';
var xhr = new XMLHttpRequest();
xhr.open('GET', excelFilePath, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
var blob = this.response;
}
之後onload裡面的blob就是這個Excel文件的二進制流,接下來只要將blob轉成文件進行下載就可以了,JS中有很多開源的第三方類庫可以做到,例如filesaver。如果是用filesaver的話,調用其中的saveAs方法就可以將該blob轉成對應文件進行下載
例如
var fileName = "test.xlsx"
saveAs(blob, fileName);
把上述方法加到onload 方法中,前端就會下載一個名為test.xlsx的Excel文件,內容就是後端傳過來的Excel
如果還要有其他操作例如展示或者在線的編輯,就需要一些第三方控制項來完成了,比如SpreadJS
上述的方法也是在他們的官方論壇中學到的,參考網址:
網頁鏈接