数据表TableTools - 保存CSV时是否只能包含可见列?

时间:2014-05-06 00:22:58

标签: datatables tabletools

我在使用Datatables的TableTools插件保存CSV时进行了一些测试。

我注意到它可以节省一切。它不关心您是否过滤了行,也不关心是否隐藏了某些列。

有没有办法只保存可见列中的数据?

3 个答案:

答案 0 :(得分:14)

您希望在定义buttons时使用mColumns

文档中的一个例子:

$(document).ready( function () {
    $('#example').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "aButtons": [
                {
                    "sExtends": "csv",
                    "sButtonText": "Special columns",
                    "mColumns": [ 0, 1, 4 ]
                },
                {
                    "sExtends": "csv",
                    "sButtonText": "Visible columns",
                    "mColumns": "visible"
                }
            ]
        }
    } );
} );

这定义了两个将导出为CSV文件的按钮。标记为Special columns的第一个只会导出列0,1,4。标有Visible columns的第二个按钮将导出所有可见的列。

mColumns参数在文档中描述如下:

  

参数可以是值为&#39; all&#39;,&#39; visible&#39;的字符串,   &#39;隐藏&#39;或者&#39; sortable&#39; - 或列的整数数组   要导出的索引。

此功能在1.10版本中并不新增。如果您尚未升级,它也可以在older version中使用。

答案 1 :(得分:5)

只是为了完成...在最新版本的DataTables上,它略有不同(这里是documentation):

$(document).ready(function() {
  $('#example').DataTable( {
      dom: 'Bfrtip',
      buttons: [
          {
              extend: 'print',
              exportOptions: {
                  columns: ':visible'
              }
          },
          'colvis'
      ],
      columnDefs: [ {
          targets: -1,
          visible: false
      } ]
  } );
} );

答案 2 :(得分:0)

只需添加一些我的方案所需的选项,这可能对某人有用。

将多个参数传递给列,并使用 not()排除具有类的列:

void Main()
{
    var vApp = MyExtensions.GetRunningVisio();
    var vPag = vApp.ActivePage;
    var shp1 = vPag.DrawRectangle(2,5,3,4.5);
    var shp2 = vPag.DrawRectangle(4,7,5,6.5);
    shp1.AutoConnect(shp2, Visio.VisAutoConnectDir.visAutoConnectDirRight);
    //Assuming 'No theme' is set for the page, no arrow will 
    //be shown so change theme to see connector arrow
    vPag.SetTheme("Office Theme");
}