1. 程式人生 > >在Excel中,不利用任何第三方工具,生成二維碼

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

pdf ng- ref mac 源碼 generated code 而是 git

有同事提需求,要批量生成二維碼。談了之後,我覺得可以做個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中,不利用任何第三方工具,生成二維碼