大佬教程收集整理的这篇文章主要介绍了jquery – 仅导出单个标题行的TableTools,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个DataTable,它有多行表头和colspan.
就像是:
<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等)只有“Level 2”标题行而不是Level 1.
有关如何将其输出的任何建议也是1级?
将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("",regeX)); //I'm not shure of this!! } } aData.push(aRow.join(oConfig.sFieldSeperator)); } }
这会将复杂的标头复制/导出到csv / excel.虽然空表格单元格在excel中保持为空,但不会合并.您可以手动合并它们.
以上是大佬教程为你收集整理的jquery – 仅导出单个标题行的TableTools全部内容,希望文章能够帮你解决jquery – 仅导出单个标题行的TableTools所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。