如何在 Javascript DataTables 中添加文本文件下载按钮?

Posted

技术标签:

【中文标题】如何在 Javascript DataTables 中添加文本文件下载按钮?【英文标题】:How to add textfile download button in Javascript DataTables? 【发布时间】:2022-01-23 18:30:06 【问题描述】:

我需要添加一个按钮来将数据表内容下载为文本文件。我在数据表中只有一列。我的代码如下。 Copy、excel、csv、pdf 和 print 都可以在下面的代码中正常工作。

$(document).ready(function () 
         $('#dataTableExample').DataTable(
            "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
            dom: 'Bfrtip',
            buttons: [
                
                    extend: 'copyhtml5', footer: true
                ,
                
                    extend: 'excelHtml5', footer: true
                ,
                
                    extend: 'csvHtml5', footer: true
                ,
                
                    extend: 'pdfHtml5', footer: true
                
            ],

        );
    );

【问题讨论】:

您可以在 SO 中使用code snippet 并提供一个工作示例让人们更容易理解您的问题 【参考方案1】:

built-in DataTables 按钮不支持将单个列导出为纯文本文件。但是,您可以通过使用 custom action 定义自己的按钮来实现此目的。

下面的 sn-p 应该可以实现您想要的,它可以添加到设置时传递给DataTablebuttons 数组中。这将添加一个名为“TXT”的按钮,该按钮从表中的第一列获取过滤后的值,然后与 CR+LF 连接,然后触发将结果下载为 .txt 文件。


  text: 'TXT',
  action: function (e, dt, node, config) 
    // Generate the text to be exported
    // Please note...
    // - This only takes column 0
    // - The output is filtered based on the applied search
    // - This doesn't include the header or footer
    // - This uses CR+LF line endings
    let text = dt.columns(0,  search: 'applied' ).data().toArray()[0].join('\r\n');

    // Add an element to the page contianing the encoded txt to download
    // click the element to trigger the download, then remove the element
    let element = document.createElement('a');
    element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
    element.setAttribute('download', 'data.txt');
    element.style.display = 'none';
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
  

可以在https://jsfiddle.net/a3eucptL/ 看到一个工作示例。

【讨论】:

以上是关于如何在 Javascript DataTables 中添加文本文件下载按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Javascript 更改数据作为 DataTables 将其显示到 html 表中

Javascript jQuery插件DataTables取消选择元素

Javascript/jQuery/Datatables 对复选框触发的值求和

如何通过 Ajax 在 jQuery DataTables 中显示 JSON 数据?

datatables异步获取数据简单实用

jQuery JavaScript Datatables 列压缩/挤压在一起