Мне нужен был способ скопировать html-таблицу и вставить ее в excel.Я использовал комбинацию техник.Сначала я добавил этот код, чтобы автоматически копировать данные в буфер вставки клиентского ПК.
Как скопировать в буфер обмена в JavaScript?
// Copies a string to the clipboard. Must be called from within an
// event handler such as click. May return false if it failed, but
// this is not always possible. Browser support for Chrome 43+,
// Firefox 42+, Safari 10+, Edge and IE 10+.
// IE: The clipboard feature may be disabled by an administrator. By
// default a prompt is shown the first time the clipboard is
// used (per session).
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
// IE specific code path to prevent textarea being shown while dialog is visible.
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in MS Edge.
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); // Security exception may be thrown by some browsers.
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
Затем я создал строку для копирования.Разделяйте значения ячеек табуляцией \ t и разделяйте строки новой строкой \ n.см. пример ниже.
Я создаю строку данных копирования с помощью PHP.
//-- Create data for a single table row
//-- We needed to escape single quotes for HTML and javascript
$copy_data = str_replace("'","\'",$col1."\t".$col2."\t".$col3);
//-- Create data for a multi rows
//-- Separate multiple rows by \n but needs to be escaped so use \\n
$copy_data = str_replace("'","\'",$col1."\t".$col2."\t".$col3."\\n".$col1."\t".$col2."\t".$col3."\\n".$col1."\t".$col2."\t".$col3);
Затем помещаю ее в кнопку копирования на веб-странице.
<a href="#" onclick="copyToClipboard('<?=$copy_data?>')">Copy</a>
Затем вы нажимаете на ссылку «Копировать», чтобы получить данные в буфер копирования.Затем перейдите в Excel и щелкните ячейку, в которую вы хотите вставить данные, затем выполните вставку.