批量生成条码(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

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即可

海南省
浏览 3518
6
4
分享
4 +1
12
6 +1
全部评论 12
 
王敏锐
代码直接粘贴进来好像用不了
· 上海
回复
wils
wils

创作者俱乐部成员

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

创作者俱乐部成员

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

创作者俱乐部成员

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

创作者俱乐部成员

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