使用Linebreaks将值导出到Excel中的单个单元格中.jQuery数据表

psy*_*cho 8 javascript excel jquery tabletools jquery-datatables

我使用jQuery DataTables成功地将HTML表从Web应用程序导出到excel.但是,一个特定列的值包含换行符和制表符.我已经设法通过<br>分别用和(x5)替换新行(\n)和制表符(\ t)来正确地在HTML表格上显示数据.

问题是当导出到excel时我需要让线路中断,但保留一个单元格中的所有值.

这是我的jquery代码:

    $('#papercliptable').dataTable({
    "sDom": 'T<"clear">lfrtip',
    "tableTools": {
        "aButtons": [{
            "sExtends": "xls",
            "sButtonText": "Excel",
            "fnCellRender": function (sValue, iColumn, nTr, iDataIndex) {
                console.log("sValue = " + sValue);
                console.log("iColumn = " + iColumn);
                return sValue.replace(/<br\s*\/?>/ig, "\r\n");
            },
            "sNewLine": "\r\n"
        }, {
            "sExtends": "print",
            "sMessage": "Metrics"
        }]
    }
});
Run Code Online (Sandbox Code Playgroud)

信用:发布

它似乎对我不起作用.所有值都转到单个单元格,但不是新行字符.

任何帮助将不胜感激.谢谢

尝试使用:

return sValue.replace(/<br\s*\/?>/ig, "\x0B");
Run Code Online (Sandbox Code Playgroud)

产生以下 在此输入图像描述

pot*_*ngs 2

如果内容包含换行符,则需要用双引号将其分隔。所以使用

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

当然,仅当内容包含 \r\n 时才需要执行此操作(否则数字将被格式化为文本)