使用jQuery Datatables 2016将带有Linebreaks的值导出到Excel中的单个单元格中

mes*_*eeb 3 regex datatable excel line-breaks export-to-excel

我试图<br>在使用DataTables将其导出到Excel时,保留在HTML表格中使用的换行符.
我按照他们的指南在这里用Regex替换了某些东西:DataTables在导出期间查找和替换.

我能够替换没问题的东西.但我无法取代<br>使相同单元格中的内容保留其换行符的换行符.

这是我的JS:

$( document ).ready(function() {

var fixNewLine = {
        exportOptions: {
            format: {
                body: function ( data, column, row ) {
                    // Strip $ from salary column to make it numeric
                    return column === 5 ?
// THIS WORKS:          data.replace(/test/ig, "blablabla"):
                        data.replace( /<br\s*\/?>/ig, '"'+"\r\n"+'"' ) :
                        data;
                }
            }
        }
    };


    $('#table2excel').DataTable({
        dom: 'Bfrtip',
        buttons:[
            $.extend( true, {}, fixNewLine, {
                extend: 'copyHtml5'
            } ),
            $.extend( true, {}, fixNewLine, {
                extend: 'excelHtml5'
            } ),
            $.extend( true, {}, fixNewLine, {
                extend: 'pdfHtml5'
            } )
        ]

    });
});
Run Code Online (Sandbox Code Playgroud)

问题出在这一行:

data.replace( /<br\s*\/?>/ig, '"'+"\r\n"+'"' ) :
Run Code Online (Sandbox Code Playgroud)

它只保存在excel中,只有一对" "而不是实际的换行符.请注意,这也不起作用:

data.replace( /<br\s*\/?>/ig, "\r\n"):
Run Code Online (Sandbox Code Playgroud)

有什么建议?

这里有一个类似的线程:使用Linebreaks将值导出到Excel中的单个单元格中.jQuery Datatables 但是它已经过时了,因为它已经有一年了,DataTables已经有了更新,"TableTools"已经被"Buttons"所取代.

mes*_*eeb 8

正确答案是:

data.replace( /<br\s*\/?>/ig, "\n" ) :
Run Code Online (Sandbox Code Playgroud)

但是,打开Excel时需要按"换行"按钮.如果有人知道自动包装它的方法,请告诉我.