jquery datatable插件将文件另存为.xls

时间:2014-07-11 08:02:25

标签: jquery excel csv jquery-datatables

我使用jquery datatable插件来显示数据。我已将文件保存选项添加为excel,csv和pdf。

虽然它允许我将表格内容保存为文件。但它在excel和csv情况下将文件保存为 .csv

我想让excel按钮允许我将文件保存为 .xls格式。如何在这个插件中实现这一点。

以下是我正在使用的代码

$('#datatable_tabletools').dataTable({
            "sDom" : "<'dt-top-row'Tlf>r<'dt-wrapper't><'dt-row dt-bottom-row'<'row'<'col-sm-6'i><'col-sm-6 text-right'p>>",
            "aaSorting": [],
            "oTableTools" : {
                "aButtons" : ["copy", "print", {
                    "sExtends" : "collection",
                    "sButtonText" : 'Save <span class="caret" />',
                    "aButtons" : ["csv", "xls", "pdf"]
                }],
                "sSwfPath" : "<?=$baseUrl?>static/js/plugin/datatables/media/swf/copy_csv_xls_pdf.swf"
            },
            "fnInitComplete" : function(oSettings, json) {
                $(this).closest('#dt_table_tools_wrapper').find('.DTTT.btn-group').addClass('table_tools_group').children('a.btn').each(function() {
                    $(this).addClass('btn-sm btn-default');
                });
            }
        });

1 个答案:

答案 0 :(得分:3)

这是可能的。您必须使用"sFileName"属性。

要实现目标,请为Excel导出指定"sFileName": "*.xls"

以下是您喜欢的代码:

$('#datatable_tabletools').dataTable({
    "sDom" : "<'dt-top-row'Tlf>r<'dt-wrapper't><'dt-row dt-bottom-row'<'row'<'col-sm-6'i><'col-sm-6 text-right'p>>",
    "aaSorting": [],
    "oTableTools" : {
        "aButtons" : ["copy", "print", {
            "sExtends" : "collection",
            "sButtonText" : 'Save <span class="caret" />',
            "aButtons" : ["csv", {
                        "sExtends": "xls",
                        "sFileName": "*.xls",
                        "bFooter": false
                    }, "pdf"]
        }],
        "sSwfPath" : "<?=$baseUrl?>static/js/plugin/datatables/media/swf/copy_csv_xls_pdf.swf"
    },
    "fnInitComplete" : function(oSettings, json) {
        $(this).closest('#dt_table_tools_wrapper').find('.DTTT.btn-group').addClass('table_tools_group').children('a.btn').each(function() {
            $(this).addClass('btn-sm btn-default');
        });
    }
});