提供自定义文件名在table2excel jquery中不起作用?

时间:2015-02-07 08:27:10

标签: jquery export-to-excel

我使用jquery代码将表数据导出到excel文件中,得到here的代码

但提供的客户文件名不起作用,它采用随机文件名。
如何从代码中提供自定义文件名。

<script>
$(function() {
        $("button").click(function(){
        $("#example").table2excel({
                exclude: ".noExl",
        name: "Employee"
        }); 
         });
});
</script>

4 个答案:

答案 0 :(得分:1)

1.打开jquery.table2excel.js

2.Find function getFileName(settings)

3.更改为

function getFileName(settings) {
        return ( settings.filename ? settings.filename : settings.name ) +
               ( settings.fileext ? settings.fileext : ".xls" );
}
当你调用jquery2excel时,

settings.name是自定义js脚本的变量 在我的例子中它看起来像

$(".generateXLS").click(function(){
    var idOfTable = $(this).attr("data-rel");
    var tableName = $(this).attr("data-table-name");
    $("#tableN"+idOfTable).table2excel({
        name: tableName
    }); 
});

答案 1 :(得分:0)

此插件中的name变量引用工作表的名称,而不是Excel文件的名称。

如果您希望能够更改文件名,则必须稍微破解插件代码,或者只使用另一个符合您需求的插件或代码,例如this one(其中)您可以将文件名放在postfix变量中。

答案 2 :(得分:0)

您可以破解table2excel jquery以提供下载的自定义名称,如下所示:

来自你的js:

<script>
$(function() {
        $("button").click(function(){
        $("#example").table2excel({
                exclude: ".noExl",
        name: "Employee.txt" //This name will be passed for download
        }); 
         });
});
</script>

然后将table2excel.js中的getFileName(e.settings)调用更改为如下命名:

if (typeof msie !== "undefined" && msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
            {
                if (typeof Blob !== "undefined") {
                    //use blobs if we can
                    fullTemplate = [fullTemplate];
                    //convert to array
                    var blob1 = new Blob(fullTemplate, { type: "text/html" });
                    window.navigator.msSaveBlob(blob1, name ); // Changed Here
                } else {
                    //otherwise use the iframe and save
                    //requires a blank iframe on page called txtArea1
                    txtArea1.document.open("text/html", "replace");
                    txtArea1.document.write(e.format(fullTemplate, e.ctx));
                    txtArea1.document.close();
                    txtArea1.focus();
                    sa = txtArea1.document.execCommand("SaveAs", true, name ); // Changed Here
                }

            } else {
                link = e.uri + e.base64(e.format(fullTemplate, e.ctx));
                a = document.createElement("a");
                a.download = name;  // Changed Here
                a.href = link;

                document.body.appendChild(a);

                a.click();

                document.body.removeChild(a);
            }

答案 3 :(得分:0)

您无需编辑或添加任何文件名称的table2excel插件include参数。 因此,现在您有两个参数,第一个是 name 用于工作表名称,另一个参数 filename 它专用于excel文件名,您可以检查下面的代码。

$("#example").table2excel({
                exclude: ".noExl",
                name: "Employee",
                filename : "EmployeeFileName",
});

有关更多信息,请查看 jquery.table2excel.js 文件 它具有解释所有内容的代码行。

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