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

Javascript 如何使用table2excel.js插件将HTML表格下载到Excel,javascript,html,excel,Javascript,Html,Excel,我正在使用table2excel.js插件将一个HTML表格下载到Excel,使用JavaScript。当我下载表格时,我收到一条消息:“Excel无法打开文件‘Test.xlsx’,因为文件格式或文件扩展名无效。请验证该文件是否已损坏,以及文件扩展名是否与文件格式匹配。”当我手动将下载文件的名称更改为‘Test.xls’时,我可以很好地打开该文件(带有一个小警告,表示文件格式和扩展名不匹配) 以下是指向table2excel.js的链接: 我尝试过的一些事情: 1.我将e.uri从“e.uri

我正在使用table2excel.js插件将一个HTML表格下载到Excel,使用JavaScript。当我下载表格时,我收到一条消息:“Excel无法打开文件‘Test.xlsx’,因为文件格式或文件扩展名无效。请验证该文件是否已损坏,以及文件扩展名是否与文件格式匹配。”当我手动将下载文件的名称更改为‘Test.xls’时,我可以很好地打开该文件(带有一个小警告,表示文件格式和扩展名不匹配)

以下是指向table2excel.js的链接:

我尝试过的一些事情:
1.我将e.uri从“e.uri=data:application/vnd.ms excel;base64”更改为“e.uri=“data:application/msexcel;base64”。
2.我变了
…将(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";
}


这是一个很好的插件,但它有一个错误,使它停止工作

谢天谢地,由于它是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。

application/vnd.openxmlformats officedocument.spreadsheetml.sheet
?谢谢,但不幸的是,这不起作用。仍然是相同的问题。您是否正在将
Base64
字符串写入文件?我实际上不确定“Base64”是什么“字符串是或是。我对所有这些都很陌生。我试图写入excel文件的唯一内容是表的内容。您知道excel如何解释电子表格文件格式是否与扩展名.xls或.xlsx匹配吗?如果在记事本中打开输出,您会看到什么?如果没有“特殊”字符,则您已将
Base64
输出写入文件而不是Excel文档。Excel已正确打开,但如何删除该警告?
function getFileName(settings) {
    return ( settings.name ? settings.name : "Untitled") + ".xls";
}