нажмите на ссылку, чтобы скопировать видимые строки в буфер обмена пользователя? - PullRequest
0 голосов
/ 11 марта 2012

Как бы вы скопировали несколько строк данных, подобных этой <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");
});

Ничего в переменной данных в окне предупреждения.Довольно сильно застрял здесь ..

1 Ответ

2 голосов
/ 11 марта 2012

Если вы хотите вставить данные в 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)

Что касается копирования в буфер обмена, см. этот вопрос для получения дополнительной информации.info.

Обновление: Копирование из браузера в буфер обмена является сложной и потенциально небезопасной операцией, и AFAIK не работает согласованно между браузерами и операционными системами.Может быть, лучше просто отбросить текст в textarea, выделенном, и попросить пользователя Ctrl+C его.Но это зависит от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...