简体   繁体   English

将所有表导出到单个 csv

[英]export all tables to single csv

im using datatables.net and some of my pages have multiple tables.我正在使用 datatables.net,我的一些页面有多个表。 i cant figure out how to iterate over each table saving the data to a variable so that i can push it out as a single csv when the export button is clicked.我无法弄清楚如何遍历每个表并将数据保存到变量中,以便在单击导出按钮时将其作为单个 csv 推出。

some tables have different headers and this is all fine.有些表有不同的标题,这一切都很好。 i just want to output all the th and td values from within the whole table to a single csv.我只想将整个表中的所有 th 和 td 值输出到单个 csv。 if datatables doesnt support this already in some roundabout way then its fine if it is jquery or javascript.如果数据表已经以某种迂回的方式不支持这一点,那么如果它是 jquery 或 javascript 就可以了。

thanks in advance提前致谢

Try this method试试这个方法

<table id="example1" class="table" style="width:100%">  
</table>

<table id="example2" class="table" style="width:100%">
</table>

JS: JS:

var table = $('#example1').DataTable();
var data = table.buttons.exportData();
// Do something with the 'data' variable

buttons.exportData() button.exportData()

this is what worked for me.这对我有用。 thanks.谢谢。

$( "#exportalltocsv" ).on( "click", function(e) {
    e.preventDefault();
    let csvstring = "";
        $('.dataTable').each( function () {
            var columns = [];
            $(this).DataTable().columns().eq(0).each( function ( index ) {
                var column = this.column( index ).header();
                columns.push($(column).html());
            } );
            csvstring += columns.map(th => '"' + th.replace('"', '\"') + '"').toString() + "\n";
            $(this).DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
                csvstring += this.data().map(value => '"' + value.replace('"', '\"') + '"').toString() + "\n";
            } );
            csvstring += "\n\n";
        });
    var hiddenElement = document.createElement('a');
    hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvstring);
    hiddenElement.target = '_blank';
    hiddenElement.download = '<?=$pagetitle.date(' Y-m-d H-i-s')?>.csv';
    hiddenElement.click();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM