我正在使用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');
                });
            }
        });

最佳答案

这是可能的。您必须使用"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');
        });
    }
});

09-25 16:10