WPSJS加载项通过剪贴板插入二维码

wils
wils

创作者俱乐部成员

时隔三年,WPSJS终于更新啦,可喜可贺👍

昨天初心不忘老师发帖,用加载项批量生成二维码,https://bbs.wps.cn/topic/36639

受此影响,我就在想,能否不通过本地文件,将js库生成的二维码图片插入表格

虽然可能效率不高,不过还是试着写一下,就当庆祝WPSJS终于更新了吧🤣


先用wpsjs create创建项目,不修改其他文件,只在ui/taskpane.html里添加这几句

🔔

<script src="&#34; target=&#34;_blank&#34; class=&#34;&#34;&gt;https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js&#34;&gt;&lt;/script&gt;

  • 引入qrcode.min.js库

💡

<script>

function copyToClipboard(text) {

var textarea = document.createElement('textarea');

textarea.value = text;

document.body.appendChild(textarea);

textarea.select();

document.execCommand('copy');

document.body.removeChild(textarea);

}

function tt() {

let a = document.createElement("div")

new QRCode(a, document.getElementById("t1").value)

let b = a.firstChild.toDataURL()

copyToClipboard(`<table><img src="${b}">`)

wps.ActiveSheet.Paste()

}

</script>

  • copyToClipboard是ai写的,浏览器写入剪贴板的函数,直接拿来用了🤣

  • tt函数里,调用QRCode,用t1输入框里的内容,生成二维码,获取二维码图片的DataURL

  • 然后将"<table><img src="url">"写入剪贴板,这里的url可以是网址、本地地址,也可以是上面获得的base64编码的图片的DataURL

  • 最后调用ActiveSheet.Paste方法,粘贴到表格

💡

<input type="text" id="t1"/>

<button onclick="tt()">生成二维码</button>

  • 在body里添加t1输入框和一个按钮,按钮的点击执行tt函数


没有任何美化,就是wpsjs的默认demo,只是在taskpane.html里添加了一点,尝试了一下,用js库生成库之后,将base64编码的图片的DataURL,直接通过剪贴板粘贴到表格,而不通过本地文件,算是备选的一条路吧😁

广东省
浏览 397
收藏
7
分享
7 +1
8
+1
全部评论 8
 
初心不忘
Range.Select()方法可以控制粘贴的图片放置在指定单元格,也可以用shape对象
· 江苏省
1
回复
wils
wils

创作者俱乐部成员

感谢,又学一招
· 广东省
回复
 
寻残梦
666
· 广东省
1
回复
 
LG
111
· 中国
1
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

有没有比较适合零基础学员的帖子,我详细学习
· 辽宁省
1
回复
wils
wils

创作者俱乐部成员

老师您好,我也是最近1年接触这个js加载项,如果感兴趣可以加这个qq群551293360,从ExcelHome论坛来的高手,愿意尝试wpsjs加载项的,基本都在这了,js和加载项相关的讨论还算热闹 表格里的JS宏,是用基础的JS语言来操作表格的对象模型,虽然强大,但也受到很多限制 WPSJS加载项是用前端做网页的方式,开发wps的插件,可以做弹窗,功能区按钮等等,浏览器提供的大量web api都可用,不受限制,很灵活,由于人才市场上前端的人非常非常多,所以这样开发加载项不愁没人气。 如果没接触过这方面,可以先了解前端的知识,比如菜鸟教程里关于html、js、css的基础支持; 如果了解过这些,那么就是学vue、react之类的框架; 如果这些也熟悉,可以直接做个网站,转化成wps加载项,很好上手。 举个比较实用的例子,就是在数据可视化这方面,echarts可以非常方便的生成各种图表,只需要去它的网站选择一个模板,然后直接粘贴到wpsjs宏生成的页面里,修改数据来源为wps表格,就可以生成一个加载项,用户打开就是漂亮的echarts图表,整个过程只需要很少的js代码
· 广东省
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

专业!
· 辽宁省
回复