gpt4 book ai didi

jquery - TableTools 仅导出单个标题行

转载 作者:行者123 更新时间:2023-12-01 00:20:10 27 4
gpt4 key购买 nike

我正在使用DataTables jquery plugin

我有一个带有 colspan 的多行表头的 DataTable。像这样的东西:

<thead>
<tr>
<th>Level 1</th>
<th colspan='2'>Level 1 - Item 1</th>
<th colspan='2'>Level 1 - Item 2</th>
</tr>
<tr>
<th>Level 2</th>
<th>Level 2 - Item 1a</th>
<th>Level 2 - Item 1b</th>
<th>Level 2 - Item 2a</th>
<th>Level 2 - Item 2b</th>
</tr>
</thead>

但是,当我使用 TableTools 插件导出时,除了“打印”选项外,其余所有(Excel、CSV、Pdf 等)只有“2 级”标题行,而不是 1 级。

关于如何让它也导出级别 1 有什么建议吗?

最佳答案

如果您还想将 level1 导出到 Excel,还有另一种方法:

将 rowspan/colspan 替换为空单元格,例如:

   <thead>
<tr>
<th>Level 1</th>
<th>Level 1 - Item 1</th>
<th></th>
<th>Level 1 - Item 2</th>
<th></th>
</tr>
<tr>
<th>Level 2</th>
<th>Level 2 - Item 1a</th>
<th>Level 2 - Item 1b</th>
<th>Level 2 - Item 2a</th>
<th>Level 2 - Item 2b</th>
</tr>
</thead>

然后按照上面 @misiu 的建议,编辑 TableTools.js。
找到 _fnGetDataTablesData 并在其中更改:

if (oConfig.bHeader) { ... }

这样:

if (oConfig.bHeader) {
//another loop
for (i = 0, rowCount = dt.nTHead.rows.length; i < rowCount; i++) {
aRow = []; //clear row data
for (j = 0, iLen = dt.aoColumns.length; j < iLen; j++) {
if (aColumnsInc[j] && dt.nTHead.rows[i].children[j] !== null) {
sLoopData = dt.nTHead.rows[i].children[j].innerHTML.replace(/\n/g, " ")
.replace(/<.*?>/g, "")
.replace(/^\s+|\s+$/g, "");
sLoopData = this._fnHtmlDecode(sLoopData);
aRow.push(this._fnBoundData(sLoopData, oConfig.sFieldBoundary, regex));
} else {
aRow.push(this._fnBoundData("", oConfig.sFieldBoundary, regex)); //I'm not shure of this!!
}
}
aData.push(aRow.join(oConfig.sFieldSeperator));
}
}

这会将复杂的标题复制/导出到 csv/excel。虽然空的表格单元格在 Excel 中将保持为空并且不会被合并。您可以手动合并它们。

虽然不是一个理想的解决方案,但目前这对我来说非常有效。

关于jquery - TableTools 仅导出单个标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com