DataTables JS / TableTools JS - 导出和打印

Posted

技术标签:

【中文标题】DataTables JS / TableTools JS - 导出和打印【英文标题】:DataTables JS / TableTools JS - exporting and printing 【发布时间】:2015-03-14 06:03:50 【问题描述】:

我正在使用 dataTables (http://www.datatables.net/release-datatables/media/js/jquery.dataTables.js) & tableTools (http://www.datatables.net/release-datatables/extensions/TableTools/js/dataTables.tableTools.js & http://www.datatables.net/release-datatables/extensions/TableTools/css/dataTables.tableTools.css) 并显示一个表格并想要打印它。但是我遇到了同样的问题。

这是我的选择

 $("#reportTableId").DataTable(
            "paging": false,
            "ordering": false,
            "info": false,
            "sDom": 'Tlrt',
            "iDisplayLength": 100,
            tableTools: 
                "sSwfPath": "../ed1/static/swf/copy_csv_xls_pdf.swf",
                "aButtons": [
                    
                        "sExtends": "collection",
                        "sButtonText": "Save",
                        "aButtons": [
                            
                                "sExtends": "xls",
                                "sTitle": $Name
                            ,
                            
                                "sExtends": "pdf",
                                "sTitle": $Name
                            
                        ],
                        "mColumns": [0, 1, 2],
                        "sPdfOrientation": "landscape"
                    ,
                    
                        "sExtends": "print",
                        "mColumns": "visible"
                    
                ]
            
        );

我的报告html结构如下格式

    <table id="reportTableId">
  <tr>
    <th class="tg-031e" colspan="2"></th>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
  <tr>
    <td class="tg-031e" colspan="2"></td>
  </tr>
  <tr>
    <td class="tg-031e"></td>
    <td class="tg-031e"></td>
  </tr>
</table>

css

   .tg-031ea 
        width: 15%;
    
    当我尝试导出到 Excel 时,我只得到第一列,没有得到第二列; 在 Excel 中不导出任何单元格颜色 在 PDF 中,我只得到 1 页输出,认为报告 HTML 为 13 页。我尝试包含列,但没有成功。

任何帮助将不胜感激。

HTML 输出:

PDF 输出:(仅标题栏)

【问题讨论】:

【参考方案1】:

希望这还不算太晚,根据我以前的经验,我了解到 Datatables 需要有价值的 HTML 表格,因此在表格中包含 colspan 并没有帮助。

【讨论】:

谢谢,发现它很难,但你是对的,我不得不删除 colspan,现在它可以工作了。

以上是关于DataTables JS / TableTools JS - 导出和打印的主要内容,如果未能解决你的问题,请参考以下文章

Jquery DataTable TableTool 在 IE 和 Firefox 中不起作用

DataTables JS / TableTools JS - 导出和打印

DataTables 尝试使用 RequireJS 访问 datatables.net.js

水平滚动 dataTables.js

表格插件之一datatables

正确实现 Vue.js + DataTables