0

我有一个表,用户在其中通过一个下拉列表过滤行,该下拉列表只是隐藏了他们不想看到的行。

我想做的是仅将当前可见的行导出到 CSV。

以前有人做过这样的事情吗?我正在使用hide()andshow()来隐藏/显示表格行。

4

2 回答 2

1

对于其他正在寻找类似解决方案的人,我终于找到了一些东西。这里是。

jQuery.fn.toCSV = function() {
      var data = $(this).first(); //Only one table
      var csvData = [];
      var tmpArr = [];
      var tmpStr = '';
      data.find("tr:visible").each(function() {
          if($(this).find("th").length) {
              $(this).find("th").each(function() {
                tmpStr = $(this).text().replace(/"/g, '""');
                tmpArr.push('"' + tmpStr + '"');
              });
              csvData.push(tmpArr);
          } else {
              tmpArr = [];
                 $(this).find("td").each(function() {
                    if($(this).text().match(/^-{0,1}\d*\.{0,1}\d+$/)) {
                        tmpArr.push(parseFloat($(this).text()));
                    } else {
                        tmpStr = $(this).text().replace(/"/g, '""');
                        tmpArr.push('"' + tmpStr + '"');
                    }
                });
              csvData.push(tmpArr.join(','));
          }
      });
      var output = csvData.join('\n');
      var uri = 'data:application/csv;charset=UTF-8,' + encodeURIComponent(output);
      window.open(uri);
    }
于 2013-01-09T01:43:52.470 回答
0

不幸的是,我不相信有一种快速的一次性方法可以做到这一点。但是,您可以做什么:

Ctrl+;仅选择可见行。

Ctrl+C复制。

打开一个新工作表。

Ctrl+V粘贴。

然后将新工作表保存为 CSV。

于 2013-01-08T08:17:06.370 回答