我正在尝试保留使用 <br>
所做的换行符将其导出到 Excel 时在 HTML 表中使用 DataTables 。
我按照他们的指南用正则表达式替换了某些内容:DataTables find and replace during export .
我能够毫无问题地更换东西。但我无法替换<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'
} )
]
});
});
问题出在这一行:
data.replace( /<br\s*\/?>/ig, '"'+"\r\n"+'"' ) :
它仅用一对 " "
保存在 Excel 中而不是实际的换行符。
请注意,这也不起作用:
data.replace( /<br\s*\/?>/ig, "\r\n"):
有什么建议吗?
这里有一个类似的线程:Export value with Linebreaks into single cell in Excel. jQuery Datatables 但它已经过时了,因为它已有一年了,并且 DataTables 已更新,“TableTools”已被“Buttons”取代。
最佳答案
正确答案是:
data.replace( /<br\s*\/?>/ig, "\n" ) :
但是,打开Excel时需要按“文本换行”按钮。 如果有人知道自动包装的方法,请告诉我。
关于regex - 使用 jQuery Datatables 2016 将带有换行符的值导出到 Excel 中的单个单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761577/