将所有表导出为单个csv



我使用datatable .net,我的一些页面有多个表。我不知道如何遍历每个表,将数据保存到一个变量中,以便在单击导出按钮时将其作为单个CSV推出。

一些表有不同的头,这都是好的。我只想把整个表中的th和td值输出到一个csv文件中。如果数据表已经不支持这种迂回的方式,那么使用jquery或javascript也可以。

thanks in advance

试试这个方法

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

JS:

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

buttons.exportData ()

这对我来说很有效。谢谢。

$( "#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 += "nn";
});
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();
});

最新更新