如何使用table2excel.js插件将HTML表格下载到Excel中

我正在使用table2excel.js插件在JavaScript中将HTML表格下载到Excel。 当我下载表格时,我得到以下消息:“Excel无法打开文件'Test.xlsx',因为文件格式或文件扩展名无效。确认文件没有被破坏,文件扩展名与文件。” 当我手动将下载的文件的名称更改为“Test.xls”时,我可以正常打开文件(只有一个警告,文件格式和扩展名不匹配)。

这里是table2excel.js的链接: https : //github.com/rainabba/jquery-table2excel/blob/377b933ae6b04f4c1826acc24a2bb0a049933f8b/dist/jquery.table2excel.js

我尝试过的一些事情:
1.我将e.uri从“e.uri = data:application / vnd.ms-excel; base64”改为“e.uri =”data:application / msexcel; base64“
我改变了
。 。 。 'return(settings.filename?settings.filename:“table2excel”)+“.xlsx”'; 至
。 。 。 'return(settings.filename?settings.filename:“table2excel”)+“.xls”';
(进行此更改时,文件保存为Test.xls.xlsx,并且仍然存在打开.xlsx文件的相同问题)。

我怎样才能让文件保存为.xls而不是xlsx? 还是有办法做到这一点,同时仍然保存文件为.xlsx(大概通过匹配的格式与.xlsx扩展名)?

注意:如果它很重要的话,Test.xlsx文件就是“普通香草”,只有一些单元格中的文本。 没有花哨的格式,字符等等。文本全是字母数字,只有一些特殊字符,如:“,。#”/ @“

非常感谢如果有任何想法!

我也有同样的问题,我把jquery.table2excel.js的以下方法改为:

 function getFileName(settings) { return ( settings.filename ? settings.filename : "table2excel") + ".xls"; } 

之后,我可以打开xls文件,但不同的格式的文件扩展名的消息会提示,也许改变头将做。

在源js文件里,我不得不改变

 function getFileName(settings) { return ( settings.filename ? settings.filename : "table2excel") + ".xls"; } 

 function getFileName(settings) { return ( settings.filename ? settings.filename : "table2excel"); } 

这是一个很棒的插件,但是它有一个阻止它工作的bug。

谢天谢地,因为它是javascript,你可以自己纠正它。

将jquery.table2excel.js文件加载到文本编辑器中。

在130行左右,你会发现一个名为getFileName的函数。

 function getFileName(settings) { return ( settings.filename ? settings.filename : "table2excel") + ".xls"; } 

将其更正为:

 function getFileName(settings) { return ( settings.name ? settings.name : "Untitled") + ".xls"; } 

我想作者不能决定怎样命名他们的variables。

不幸的是,你总是会得到关于扩展名不正确的文件格式的警告。 这是因为xls文件通常是一个二进制文件,但是table2excel利用了它可以加载html的function。