打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
解决问题

在Excle中处理条码常用的有两种方式:

1 使用条码字体

2 使用Excel自带的控件" Microsoft BarCode 控件“

对于使用条码字体,网上很多人说是大小的问题,经过实验,20~36都基本没问题。

常用的条码有39码和code128。所以先安装了这两种字体,调整格式之后显示打印出来没有问题。但是使用扫描设备却都无法识别。

后来寻找原因,网上的解释是在自己的原始数据前后加上”*“作为起始符和终止符才能被识别,后来经验证确实如此。然而问题是使用一般的设备扫描得到的数据不会自动清除”*“,对客户而言这很不友好。如果是专业的扫码枪,可以尝试设置省略39码的起止符。

故转而使用code128,如果直接将原始数据放在excle中设置条码字体是不行的,需要对原始数据进行处理。csdn上有人用宏命令做了示例,经过实验确实可行。可是遇到个问题,如何在合适的实际对原始数据进行处理(宏用得不熟)。本来使用c#写的程序导出excle的,所以就把宏里的函数转到vb工程里封装了一个dll,使用c#直接调用,把处理过的数据放进excle即可。

附上那位仁兄的vb源码:

 1 Public Class BarCodeHelper 2     Public Function GetCode128B(ByVal STR As String) As String 3         Dim result As String 4         Dim checksum As Integer, i_tmp As Integer 5         Dim checkCode As String '生成验证码 6         checksum = 104 7         For i = 1 To Len(STR) Step 1 8             i_tmp = AscW(Mid(STR, i, 1)) 9             If i_tmp >= 32 Then10                 checksum = checksum + (i_tmp - 32) * i11             Else12                 checksum = checksum + (i_tmp + 64) * i13             End If14         Next15         checksum = checksum Mod 10316         If checksum < 95 Then17             checksum = checksum + 3218         Else19             checksum = checksum + 10020         End If21         checkCode = ChrW(checksum)22         result = ChrW(204) + STR + checkCode + ChrW(206)23         GetCode128B = result24     End Function25 26 End Class

说明:其实还有转code128c和EAN128的,具体看资源:http://download.csdn.net/download/liqingle/6880253

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel 请教一个关于CODE128条形码宽度的问题
python语言
【转载】Excel vba调用js将UTF
JS扩展方法
C#生成中文汉字验证码源码
java验证身份证号码及编码规则和提取相应信息
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服