我正在使用table2excel.js插件将JavaScript表格下载到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 =”数据: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文件是“普通的”,只有一堆单元格中的文本。没有花哨的格式,字符等。文本都是字母数字,只有几个特殊字符,如:“,。#'/ @”
非常感谢任何想法!
答案 0 :(得分:2)
我也有同样的问题,我在jquery.table2excel.js
中将以下方法更改为:
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel") + ".xls";
}
之后我可以打开xls文件,但会提示不同的格式文件扩展名消息,也许会更改标题。
答案 1 :(得分:1)
在源js文件中,我不得不改变
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel") + ".xls";
}
到
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel");
}
答案 2 :(得分:1)
这是一个很棒的插件,但它有一个阻止它工作的错误。
值得庆幸的是,既然是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";
}
我想作者无法确定如何命名他们的变量。
可悲的是,您将始终收到有关扩展名文件格式不正确的警告。这是因为xls文件通常是二进制文件,但table2excel利用了excel的功能,可以加载html。