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

时间:2015-05-07 17:26:26

标签: javascript html excel

我正在使用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文件是“普通的”,只有一堆单元格中的文本。没有花哨的格式,字符等。文本都是字母数字,只有几个特殊字符,如:“,。#'/ @”

非常感谢任何想法!

3 个答案:

答案 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。