如何将多行数据(例如<tr><td>cell 1</td><td>cell 2</td></tr> <tr><td>cell 3</td></td>cell 4</td></tr>
)复制到用户的剪贴板中,准备好粘贴到Excel中(一个<td>
对将转到Excel中的一个单元格)
我有这样的想法:
$('#copy').click(function(){
var data = $('datatable tr:visible').text();
alert("you have copied these data: " + data + "now you can paste them in Excel");
});
警告框中的数据变量无效。几乎卡在这里..
答案 0 :(得分:2)
如果要将数据粘贴到Excel中,则可能需要在不同行中的每一行,每列由制表符分隔。例如:
var rows = []
$('datatable tr:visible').each(function() {
var columns = [];
$(this).children("td").each(function() {
columns.push($(this).text());
});
rows.push(columns.join("\t");
});
var data = rows.join("\n");
jsFiddle的工作示例(改编自OP代码)
至于复制到clipboad,请参阅this question了解更多信息。
更新:从浏览器复制到剪贴板是一项复杂且可能不安全的操作,AFAIK在浏览器和操作系统之间无法一致地工作。也许最好只删除textarea
中的文本,然后选择该文本,并请求用户Ctrl+C
。但这取决于你。