批量生成条码(code128)更简单的办法

wils
wils

创作者俱乐部成员

首先声明,今天的代码来自网络搜索,https://dev.to/saulodias/generating-valid-code-128-barcodes-with-javascript-5ana,这里只是使用方法

先下载code128.ttf字体,右键安装即可

然后,新建xlsm文件,打开宏编辑器,粘贴自定义公式

💡

function toSetC(text) {

return text.match(/\d{2}/g).map((ascii, index) => {

var codeC = Number(ascii);

var charCode = codeC > 94 ? codeC + 100 : codeC + 32;

return String.fromCharCode(charCode)

}).join('');

}

function checkSum128(data, startCode) {

var sum = startCode;

for (var i = 0; i < data.length; i++) {

var code = data.charCodeAt(i);

var value = code > 199 ? code - 100 : code - 32;

sum += (i + 1) * (value);

}

var checksum = (sum % 103) + 32;

if (checksum > 126) checksum = checksum + 68 ;

return String.fromCharCode(checksum);

}

function encodeToCode128(text, codeABC = "B") {

text = text.Text ?? text

var startCode = String.fromCharCode(codeABC.toUpperCase().charCodeAt() + 138);

var stop = String.fromCharCode(206);

text = codeABC == 'C' && toSetC(text) || text;

var check = checkSum128(text, startCode.charCodeAt(0) - 100);

//text = text.replace(" ", String.fromCharCode(194));

return startCode + text + check + stop;

}

最后,只需在单元格里用encodeToCode128公式,再把字体设置为code 128即可

广东省
浏览 4218
6
5
分享
5 +1
36
6 +1
全部评论 36
 
太俗
不行啊,扫码识别不到,代码提示错误
· 江西省
回复
wils
wils

创作者俱乐部成员

具体一点吧,怎么用的,报什么错
· 海南省
回复
 
李光宇
好用!非常感谢!
· 吉林省
回复
 
冢
您好,请问这种方式生成的条码可以在条码底部带上文字信息么
· 广西
2
回复
wils
wils

创作者俱乐部成员

可以,但是需要换字体,且代码也要修改,因为结尾的码需要转换一下,所以有点麻烦 批量做条码的方法很多,比如zint
· 海南省
回复
 
浅梦星河
请问可以直接使用吗?如图,但是打印出来的条码,扫描枪无法识别
· 吉林省
回复
wils
wils

创作者俱乐部成员

怪事了 楼上,我昨天试了一下,确实要删除那一句,否则报错 今天再试,又得加上那一句才扫码,今天不报错了。。。
· 广东省
回复
 
王敏锐
代码直接粘贴进来好像用不了
· 上海
回复
wils
wils

创作者俱乐部成员

试了一下,需要删掉text = text.Text这一句 原来公式传递的是range对象,现在好像改成了字符串,不知道啥时候变了。。。
· 广东省
回复
 
全栈开发
市面上有在 WPS 中插入二维码的工具吗?没有我可以开发一个。
· 安徽省
回复
wils
wils

创作者俱乐部成员

wps有插入二维码和条形码的功能,只是批量有点麻烦,可能后续会更新 ExcelDNA,命令行,vba等方式的例子也有,但都没推广开,写出来分享也就个位数的人看到,需求太少了。。。
· 广东省
回复
 
方盛
方盛

创作者俱乐部成员

这个可以,手机一扫能出来吗?
· 湖北省
回复
wils
wils

创作者俱乐部成员

试了,可以扫出来 昨天的方式好在,二维码、dm码随便什么码都可以生成 今天这个就是分析code128的规则,自己写编码函数,然后用字体显示出来,好处是用起来简单。。。
· 海南省
回复
 
亂雲飛渡
学习收藏
· 广东省
回复