2017-06-15 212 views
0

我想將HTML表格轉換爲XLSX uisng AngularJS甚至純JavaScript。下載XLSX損壞

當我轉換到XLS使用下面的下載罰款和XLS文件打開。

var blob = new Blob([template], {type: "data:application/vnd.ms-excel"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xls"); 

但是,我要求要在XLSX文件,所以我改變了MIME類型,像下同代碼文件的擴展名,

var blob = new Blob([template], {type: "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xlsx"); 

但是當我打開下載XLSX文件已損壞,MS辦公室正在拖出錯誤彈出窗口。

我在做什麼錯了,以及如何將HTML表格轉換爲XLSX? 即使替代想法也被接受。

PS:這個表格非常複雜,在列和所有行中,所以插件像ALASQL,JS-XLSX沒有幫助。

+0

你能解決這個問題嗎? –

+0

@Agramer它似乎不可能從Angular方面。所以我們在Service side(JAVA)中完成了這個工作,並下載了作爲響應發送的XLSX。 –

+0

謝謝你的答案 - 我遇到類似的問題與Vue.js. –

回答

1

只是試圖改變MIME類型

改變它application/vnd.ms-excel它正常工作與XLSX也。

var blob = new Blob([template], {type: "application/vnd.ms-excel"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xlsx"); 

試試這個代碼。

+0

已經嘗試過,它不工作,損壞的文件。看起來像MS有更新一些XLSX prorperties。 –

+0

它會詢問是否,如果您按是應該打開。你可以嘗試讓我知道嗎? – MehulJoshi

+0

不,它不會要求是或否。它會說文件擴展名是無效的,等等等等。只需按確定並退出。 –

1

問題可能在於XLSX類型。這篇文章說明它是一組壓縮的XLS文件。請仔細閱讀。我無法評論,因爲我的分數還沒有超過50,所以我發佈了一個答案。

https://stackoverflow.com/a/37516332/1425168