分享

WPS-JSA窗体中显示二维码 全网独家首发

 昵称72339616 2025-05-22 发布于湖北
众所周知,WPS-JSA的窗体功能很弱,无法显示图片,所以想要在窗体中显示二维码就比较麻烦,另外网上搜到的教程都是使用webapi通过网址生成二维码,如果没有网络的环境下就无法生成, 这2个问题,我在郑广学JSA火箭速成班8.15节, 一并解决了,各位同学可以到网盘下载使用。
1. 改造开源二维码库 qrcode-svg
通过改造js的二维码开源库qrcode-svg,移植到JSA环境中,用它的原因是相对轻量级,可以生成SVG图片文本和二维码矩阵,有了SVG图片文本,我们就可以保存为本地文件,这样WPS中就可以用jsa以图片文件插入到表格中了, 而对于窗体就要复杂一些了,因为窗体无法显示图片,所以我采取了一个迂回方案,就是在窗体中预置了50个lable标签,得到二维码矩阵后,按行用黑色方块问你和空格一次填充得到文本型的二维码
最后再在窗体中,依次写入多个lable标签中,再整齐排列lable,当然这里面有很多细节,就不一一赘述了,有兴趣的同学可以去看源码
然后二维码功能综合到QRUtiles函数库中, 放到之前的mPicUtiles模块中 
使用的时候导入模块

mPicUtiles-V1.0.4 (包含图片处理和二维码组件)

frmQRCode窗体

2. 批量生成二维码用法
代码很简单
function 批量插入二维码图片(){	[...Range("B2:B5")].forEach(r=>{var img=QRUtiles.z生成二维码SVG图片(r.Value2);PicUtiles.insertPic(img,r.Offset(0,1))PicUtiles.insertCellPic(img,r.Offset(0,2))	})}
3. 窗体中生成二维码
有2种方法,可以直接使用我的模版窗体frmQRCode显示 
或者从我的窗体上把二维码QRFrame框架复制到自己的窗体中
然后调用下面语句即可
function 显示窗体中的二维码(){	QRUtiles.z生成窗体二维码标签(frmQRCode,"https://")	frmQRCode.Show(0)	QRUtiles.z生成窗体二维码标签(UserForm2,"https://v.",UserForm2.QRFrame)	UserForm2.Show(0)}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多