[英]Select, Copy from IE and paste to Excel
因此,基本問題是,如何使表格從IE復制好粘貼到Excel或OpenOffice calc。 該頁面位於此處: http : //tuudik.lohv.eu/Asjad/EURXML/
該表由PHP代碼動態創建。 tekst有一個按鈕“ Vali tabel!” 這意味着它將選擇表格。 然后,我想復制它,例如使用CTRL + C並將其粘貼到電子表格中。
最好的選擇是什么? 我是否應該創建一個隱藏的div,然后它具有與表中相同的數據,但采用其他方式設置了格式?
此外,任何人都知道如何制作“ Valikõik!” 按鈕的工作方式,以便它將內容自動復制到剪貼板?
為什么不修改PHP腳本以將頁面內容直接寫到Excel,將內容寫到excel單元中,而不是寫到<td>元素的HTML上,然后設置標題以下載它...因此傳遞額外的內容腳本的'format'參數可以將輸出格式確定為XLS的HTML。 PHPExcel庫提供了在純PHP中生成XLS文件的功能。 然后,HTML頁面上的鏈接可以提供直接將輸出重新創建為XLS文件以供下載(而不是復制粘貼)的選項。
我需要一種復制html表信息並將其粘貼到excel中的方法。 我使用了多種技術。 首先,我添加了此代碼,以便可以將數據自動復制到客戶端PC的粘貼緩沖區中。
// 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,然后單擊要粘貼數據的單元格,然后進行粘貼。
以我的經驗,從html頁面進行復制最好是通過沒有格式的文本編輯器來完成。 這樣,內容通常以某種形式定界(通常是制表符),這使得粘貼到電子表格變得更加容易。
可能不會直接回答您的問題,但是如果您能以某種方式使用制表符分隔符將數據復制為純文本格式(例如在隱藏的div之類的東西中),則將其粘貼到支持各種格式的電子表格中可能會獲得更大的成功。
使用略有不同的方法,請嘗試在Excel中獲取外部數據功能
(我在使用Excel 2010上進行了測試,但2007年與2007年類似,並且在2003年以略有不同的偽裝上市)
從菜單數據/獲取外部數據/從Web
打開一個表格:
瞧,數據在excel中,是來自后台查詢的未格式化數據!
然后,每當您要更新數據時,只需單擊刷新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.