2013-01-08 63 views
0

我有一張表,其中用戶通過下拉菜單過濾行,它們只是隱藏了他們不想看到的行。CSV導出可見行

我想要做的是僅導出到CSV目前可見的行。

以前有人曾經做過這樣的事情嗎?我正在使用hide()show()來隱藏/顯示錶格行。

回答

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); 
    } 
0

不幸的是,我不相信有這樣做的快速一次性方法。 但你可以做什麼:

Ctrl + ;只選擇可見的行。

Ctrl + C copy。

打開一張新紙。

Ctrl + V粘貼。

然後將新工作表保存爲CSV。