我有一个表,用户通过下拉列表过滤行,只是隐藏了他们不想看到的行。
我想要做的是只导出当前可见行的CSV。
以前有人做过这样的事吗?我正在使用hide()
和show()
来隐藏/显示表格行。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
我不相信有一种快速的一次性方法。 但你可以做什么:
Ctrl + ; 仅选择可见行。
Ctrl + C copy。
打开一张新表。
Ctrl + V 粘贴。
然后将新工作表保存为CSV。