javascript - 如何复制带有剪贴板链接的表格以将其粘贴到excel中

标签 javascript html excel clipboard

我在一个网站上创建数据,就像表格一样。我想将该数据复制到excel。我这样做是使用制表符转到行中的下一个单元格并使用换行符转到下一行:

let clipboard = 'My link' + "\t" + secondCell + "\t" + thirdCell + "\n" + 
firstCellSecondRow + "\t" + secondCellSecondRow + "\t" + thirdCellSecondRow;
navigator.clipboard.writeText(clipboard);
将该文本复制到 Excel 表中效果很好:
Data in excel
现在我的挑战是,我想为一个单元格的文本添加一个链接。我直观的方法是将以下文本添加到剪贴板:
let clipboard = '<a href="https://www.my-url.com">My link</a>' + "\t" + secondCell + "\t" + thirdCell + "\n" + 
firstCellSecondRow + "\t" + secondCellSecondRow + "\t" + thirdCellSecondRow;
navigator.clipboard.writeText(clipboard);
但这不起作用,它实际上会显示带有 html 的文本:
Data in excel
我想要的只是文本“我的链接”和一个可点击的实际链接:
Data in excel
由于在excel中可以复制带有链接的文本,我觉得它应该可以工作。我可以用 javascript 做到这一点吗?

最佳答案

以下是在 JavaScript 中实现它的方法:

let html = '<table><tr><td><a href="https://www.my-url.com">My link</a></td><td>secondCell</td></tr><tr><td>firstCellSecondRow</td><td>secondCellSecondRow</td></tr></table>';

const blob = new Blob([html], { type: "text/html" });

navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]);
我没有在答案中将其写为片段,因为 StackOverflow 具有不允许片段中的剪贴板的安全限制。
如果您在控制台中尝试,可能会出现此错误:

Uncaught (in promise) DOMException: Document is not focused.


这是代码的控制台可测试版本,这意味着您在 3 秒超时期间单击页面:
let html = '<table><tr><td><a href="https://www.my-url.com">My link</a></td><td>secondCell</td></tr><tr><td>firstCellSecondRow</td><td>secondCellSecondRow</td></tr></table>';

const blob = new Blob([html], { type: "text/html" });

setTimeout(() => navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]), 3000);
Excel中的结果:
enter image description here

关于javascript - 如何复制带有剪贴板链接的表格以将其粘贴到excel中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66585315/

相关文章:

javascript - AngularJS 1.6 与 jQuery Steps(插件)异步内容加载

html - 如何将此幻灯片移动到页面的中心(水平)?

c# - 如何调整电子邮件中嵌入图像的大小

excel - 如何从单元格值引用另一张纸上的单元格

c# - 查看excel中是否有隐藏列

javascript - AngularJS 中的多个自定义过滤器

javascript - Vue.js - 更新路由器 View

javascript - WordPress 的各个版本之间存在哪些独特的帖子引用?

img 标签下方的 HTML 中心文本

python - 如何使用 Python 仅将 Excel 单元格中字符串的一部分加粗?