将dataTables导出到excel时删除“div”和“span”

unftdfkk  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(97)

我尝试使用dataTables插件导出HTML表。我的表在td标记中有div和span标记。导出表时,将div和span标记导出为值。我尝试使用代码只导出值

{extend: 'excelHtml5',
filename: 'Students with Accounts',
exportOptions: { format: { body: function (data, row, column, node ) 
{ return column === 4 ? "\0" + data : data;
return column === 4 ? data.text() : data; } } }
},

不过,我得到的结果为

有没有办法只导出单元格的文本?就像这样

doinxwow

doinxwow1#

我想你的意思是使用node.innerText而不是data.text()。参见innerText-和innerText必须在node上操作,而不是在data上操作。
但更重要的是,您为什么需要exportOptions选项呢?
默认行为是使用设置为truestripHtml-除非您在示例代码中尝试执行的操作干扰了它。
要记住的关键是:使用时:

body: function (data, row, column, node )

data参数表示<td>标记内的全部内容-包括任何HTML。通过使用以下的一些变体:

return data

在该函数中,您将覆盖stripHtml默认处理-您将获得Excel文件中的HTML。
从我已经链接到的DataTables文档中:
data =单元格的innerHTML
row =单元格的行索引
column =单元格的列索引
node =单元节点(自Buttons 1.2.2起)

相关问题