gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:09:31 27 4
gpt4 key购买 nike

我在一个网站上创建数据,就像表格一样。我想将该数据复制到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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com