导出DataTables至Excel时如何去除div和span标签
DataTables导出Excel仅保留单元格纯文本解决方案
问题分析
你当前的代码存在两个关键问题:
- 函数内写了两个
return语句,第二个永远无法执行; - 尝试调用
data.text()是错误的——此处data是包含HTML标签的字符串,并非jQuery对象,无法调用text()方法。
正确解决方案
利用exportOptions.format.body回调中的node参数(当前单元格的DOM元素),提取其纯文本内容即可,修改后的代码如下:
{ extend: 'excelHtml5', filename: 'Students with Accounts', exportOptions: { format: { body: function(data, row, column, node) { // 获取单元格纯文本,自动忽略内部div/span标签 const cellText = $(node).text().trim(); // 若仅需处理第4列(注意列索引从0开始),保留以下判断,否则直接返回cellText return column === 4 ? "\0" + cellText : cellText; } } } }
说明
$(node).text()会提取当前td元素下的所有纯文本内容,自动过滤掉内部的HTML标签;.trim()用于去除文本前后的多余空格,优化导出内容格式;- 如果你不需要针对特定列处理,直接返回
$(node).text().trim()即可导出所有列的纯文本。
内容的提问来源于stack exchange,提问作者sheetal singh
相关产品推荐
相关产品推荐

