纯JS宏生成二维码

wils

创作者俱乐部成员

最近碰巧发现了这个库,https://github.com/papnkukn/qrcode-svg

下载lib文件夹里的qrcode.js,导入wps宏编辑器,就可以生成svg格式的二维码了


需要注意的是,其中save方法不可用,需要保存到本地时,要改成FileSystem接口

🔔

function aa()

{

for (const i of Range("A1:A3").Value2.flat()) {

const s = new QRCode(i).svg()

FileSystem.WriteFile(`${ThisWorkbook.Path}\\${i}.svg`, s)

}

}


如果不使用本地临时文件,似乎也可以通过剪贴板,向表格插入二维码

🔔

function bb()

{

const tb = ActiveSheet.Shapes.AddTextbox(1, 1, 1, 100, 100)

for (const i of Range("A1:A3").Value2.flat()) {

const s = base64enc(new QRCode(i).svg())

tb.TextFrame2.TextRange.Text += `<table><img src='data:image/svg+xml;base64,${s}'>`

}

tb.TextFrame2.TextRange.Copy()

tb.Delete()

Range("B1").Select()

ActiveSheet.Paste()

}

其中的base64enc是将字符串转base64的方法


二维码插入表格之后,可以再导出为其他图片格式,还有其他一些玩法。。。

总之,这就是个纯JS宏环境可用的二维码库,在无网络不安装加载项的情况下可能有用😁

广东省
浏览 849
5
7
分享
7 +1
9
5 +1
全部评论 9
 
学习了
· 福建省
回复
 
加载项试了下,用TextFrame2.TextRange.Text写入一段base64字符串的二维码居然也可以
· 广东省
回复
wils

创作者俱乐部成员

感谢支持 加载项要灵活很多,既可以直接操作剪贴板,也可以canvas直接获取图片的dataurl,也就不必拘泥于这个svg库了,随便玩都行
· 广东省
回复
 
大佬 可以转入gitee吗? Github不敢用
· 浙江省
回复
wils

创作者俱乐部成员

有人做过了 https://gitee.com/zxnwda/qrcode-svg
· 广东省
回复
 
很强
· 浙江省
回复
 
小白,大佬能说说怎么导入吗
· 福建省
1
回复
wils

创作者俱乐部成员

哦哦,忘记说了 点击,文件->导入文件->选中那个js,会报错,但不用理会,因为只是说导入的不是从wps导出的文件,没有影响 另外,工具->选项->编译,这里的两个禁止全局的选项需要去掉
· 海南省
回复