首页 > 代码库 > 在Excel中,不利用任何第三方工具,生成二维码

在Excel中,不利用任何第三方工具,生成二维码

有同事提需求,要批量生成二维码。谈了之后,我觉得可以做个excel文件,把要打印的内容放进去,然后给每行数据生成一个二维码。下一步就要在Excel里面生成二维码。问了一下度娘,貌似都得利用一些第三方工具,但是公司的政策比较严,任何软件都必须是正版(这种需求,短时间内估计不会批准预算买软件)。因此想不靠第三方的东西,就用纯粹的vba,去生成二维码。这个时候就要感谢一下谷歌,很快在StackOverflow上找到了我想要的源码。

这是StackOverflow的原帖

原帖的最受欢迎答案是由Jonas Heidelberg提供的。他并没有从头写起,而是站在了Jiri Gabriel的肩膀上。Jiri在2013年用vba写了一个1D/2D条码生成器,而且这位大哥很慷慨,直接把源码放到了GitHub,支持MIT协议。这是Jiri的源码。

Jonas在Jiri的源码基础上,又包装了一层,让调用更加简单。

总之,在这二位的基础上,我达成了目标。

这个版本也有一些缺陷。主要遇到两个。

  • 慢。100多个字符长的string,一次生成10行,要将近2分钟。而且生成之后,Excel也变得很慢,貌似这些二维码很占资源。
  • 遇到特定字符时,生成的二维码可能缺东西。比如,原始数据如果包含CN,生成二维码之后再去扫瞄,发现CN后面的内容都不见了;Jonas遇到另外一个问题,遇到某些字符时,二维码的内容不是缺少,而是重复。他自己修改了一下源码,我试用了一下,我这边生成的二维码彻底不对了。所以这还是个未解的难题。

 

在Excel中,不利用任何第三方工具,生成二维码