我正在尝试使用 AngularJS 甚至纯 JavaScript 将 HTML 表格转换为 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 Office 会弹出错误窗口。
我做错了什么以及如何将 HTML 表格转换为 XLSX? 甚至替代的想法也被接受。
PS: 该表非常复杂,列中包含行等等,因此像 ALASQL、JS-XLSX 这样的插件没有帮助。
问题可能出在 XLSX 类型上。这篇文章指出它是一组压缩的 XLS 文件。通读一下。我无法发表评论,因为我的分数还没有超过 50,所以我将其作为答案发布。
尝试改变哑剧类型
将其更改为
application/vnd.ms-excel
,它也可以与 XLSX 配合使用。
var blob = new Blob([template], {type: "application/vnd.ms-excel"});
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xlsx");
试试这个代码。
尝试编辑文件类型,
`const blob = new Blob([data], {
// type: 'application/vnd.ms-excel;' //old
type: 'application/vnd.openxmlformats- officedocument.spreadsheetml.sheet;
charset=utf-8' //try this new
})`