我使用jQuery DataTables成功地将HTML表从Web应用程序导出到excel . 但是,一个特定列的值包含换行符和制表符 . 我已经设法通过分别用 <br>
和&nbsp;(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"
}]
}
});
图片来源:post
它似乎对我不起作用 . 所有值都转到单个单元格,但不是新行字符 .
任何帮助将不胜感激 . 谢谢
尝试使用:
return sValue.replace(/<br\s*\/?>/ig, "\x0B");
产生以下
2 回答
让我们有一个完整的例子 .
请注意,您必须在自己的域中拥有
copy_csv_xls_pdf.swf
. 您可以从以下网址下载:https://cdn.datatables.net/tabletools/2.2.4/这对我有用,并产生:
CSV:
请注意,列之间的空格是水平制表符
"\t"
0x09
.Excel中:
注意,如果通过
File - Open
打开*.csv
,则这是Excel中的结果 . 文本导入向导无法以正确的方式处理单元格内的换行符 .如果内容包含换行符,则需要在双引号内分隔 . 所以使用
当然,只有当内容包含\ r \ n时才需要这样做(否则数字格式化为文本)