2017-06-15 182 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