Excel利用字体文件如何 生成Code128

刘炎林 2018-06-18 01:53:25
Excel利用字体文件如何 生成Code128
求解啊啊
...全文
1170 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SummerCode 2019-04-04
  • 打赏
  • 举报
回复
--------------------- [code 128 校验 vb] 新建一个Excel然后另存为启用宏的Excel工作簿(后缀为.xlsm),如果保存时候提示 “文档检查器”警告,需要在Excel选项的 信任中心 设置,去掉 “文档特性设置”里面的勾。 Excel -》开发工具-》Visual Basic  增加以下代码: Function code128b(Tar As Range)   '128B码:ChrW(204). Dim s$, i%, ss$, j%, curR%, checkB% curR = Tar.Row s = Tar.Value checkB = 1  '开始位的码值为104 mod 103 =1 For i = 1 To Len(s)     ss = Mid(s, i, 1)     j = Asc(ss) '不过滤无效字符,比如汉字.     If j < 135 Then         j = j - 32     ElseIf j > 134 Then         j = j - 100     End If     checkB = (checkB + i * j) Mod 103   '计算校验位 Next If checkB < 95 And checkB > 0 Then  '有的资料直接求103的模,解说不充分,因为有的校验位超过127时,系统会"吃"掉它们(连带休止符).     checkB = checkB + 32 ElseIf checkB > 94 Then '字体设置时,字模被定义了2个值.观察字体文件时能发现.     checkB = checkB + 100 End If code128b = ChrW(204) & s & IIf(checkB, ChrW(checkB), Chr(32)) & ChrW(206) End Function --------------------- [code 128 校验 c#] public string GetCode128A(string inputData) { string result = ""; int checksum = 103; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (inputData[ii] >= 32) { checksum += (inputData[ii] - 32) * (ii + 1); } else { checksum += (inputData[ii] + 64) * (ii + 1); } } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(203) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206); return result; } public string GetCode128B(string inputData) { string result = ""; int checksum = 104; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (inputData[ii] >= 32) { checksum += (inputData[ii] - 32) * (ii + 1); } else { checksum += (inputData[ii] + 64) * (ii + 1); } } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(204) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206); return result; } public static string GetCode128C(string inputData) { string result = ""; int checksum = 105; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (ii % 2 == 0) { checksum += Convert.ToInt32(inputData.Substring(ii, 2)) * j; if (Convert.ToInt32(inputData.Substring(ii, 2)) < 95) { result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 32); } else { result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 100); } j++; } ii++; } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(205) + result + Convert.ToChar(checksum) + Convert.ToChar(206); return result; }
SummerCode 2019-04-04
  • 打赏
  • 举报
回复
需要生成校验码,如下: public string GetCode128A(string inputData) { string result = ""; int checksum = 103; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (inputData[ii] >= 32) { checksum += (inputData[ii] - 32) * (ii + 1); } else { checksum += (inputData[ii] + 64) * (ii + 1); } } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(203) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206); return result; } public string GetCode128B(string inputData) { string result = ""; int checksum = 104; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (inputData[ii] >= 32) { checksum += (inputData[ii] - 32) * (ii + 1); } else { checksum += (inputData[ii] + 64) * (ii + 1); } } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(204) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206); return result; } public static string GetCode128C(string inputData) { string result = ""; int checksum = 105; int j = 1; for (int ii = 0; ii < inputData.Length; ii++) { if (ii % 2 == 0) { checksum += Convert.ToInt32(inputData.Substring(ii, 2)) * j; if (Convert.ToInt32(inputData.Substring(ii, 2)) < 95) { result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 32); } else { result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 100); } j++; } ii++; } checksum = checksum % 103; if (checksum < 95) { checksum += 32; } else { checksum += 100; } result = Convert.ToChar(205) + result + Convert.ToChar(checksum) + Convert.ToChar(206); return result; } https://blog.csdn.net/SummerCode/article/details/89022932

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧