解决问题--在Excel中使用条码字体打印出的code128条码不能被识别

在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 Then
10                 checksum = checksum + (i_tmp - 32) * i
11             Else
12                 checksum = checksum + (i_tmp + 64) * i
13             End If
14         Next
15         checksum = checksum Mod 103
16         If checksum < 95 Then
17             checksum = checksum + 32
18         Else
19             checksum = checksum + 100
20         End If
21         checkCode = ChrW(checksum)
22         result = ChrW(204) + STR + checkCode + ChrW(206)
23         GetCode128B = result
24     End Function
25
26 End Class

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

时间: 2024-11-09 15:00:49

解决问题--在Excel中使用条码字体打印出的code128条码不能被识别的相关文章

Oracle EBS的BIP报表中显示特殊字体

http://oracleseeker.com/2009/08/25/font_mapping_setup_for_special_character_print_in_oracle_ebs_bip/ 如若在BIP报表中使用了一些特殊的字体,这些字体在JRE的字体库中没有的话,则BIP报表的运行结果就不正确,最典型的例子就是条码字体的打印. 如下图是我在rtf模板中使用code39字体设计的条码显示 但是在Oracle EBS环境下运行之后的结果如下,条码字体的格式丢失了: 这是由于FO引擎在生

JAVA将Excel中的报表导出为图片格式(三)换一种实现

上一篇介绍了使用Java的Robot机器人实现截图,然后将剪贴板上的数据流生成PNG图片 但是经过博主的不断测试,在完全依赖远程桌面的没有终端显示器的服务器上 使用截图方式是不可行的,因为一旦使用了远程桌面,再断开桌面,系统后台执行的截图程序会全部截到黑屏 所以博主不得已去用另一种通用方式生成PNG 这就是要使用Apache公司的POI工具,对整个excel进行解析 将excel的每一个单元格,数据,格式,边框全都读取出来 其中需要考虑到单元格的合并,行列的隐藏等等复杂的问题 最终使用JAVA

Java利用POI导入导出Excel中的数据

     首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地址http://poi.apache.org/download.html,有兴趣的朋友也可以去看看其中的API.      下面分享一下在对POI进行基本操作时觉得需要注意的两点:       1.POI中针对xlsx/xls是需要create different Workbook instance

c#.net循环将DataGridView中的数据赋值到Excel中,并设置样式

Microsoft.Office.Interop.Excel.Application excel =                new Microsoft.Office.Interop.Excel.Application();            excel.SheetsInNewWorkbook = 1;            excel.Workbooks.Add(); //设置Excel列名            excel.Cells[1, 1] = "学号";     

Python爬虫爬数据写入到EXCEL中

Python抓数据写到EXCEL中.以前都是写到txt中然后再导入到excel.现在直接写到excel中. #coding=utf-8 import xlwt import requests from bs4 import BeautifulSoup import sys reload(sys)   sys.setdefaultencoding('utf8')  #打开excel文件 data=xlwt.Workbook() #获取其中的一个sheet table=data.add_sheet(

excel中需要熟练掌握技能

一.排版篇: 给他人发送excel前,请尽量将光标定位在需要他人首先阅览的位置,例如Home位置(A1),例如结论sheet,长表尽量将位置定位到最顶端 有必要的时候请冻结首行:没必要但可追究的内容,可以隐藏处理 行标题.列标题加粗,适当处理文字颜色.填充颜色,利人利己, 设计表单样式一定是遵守“三色原则”:首行.首列最深,间行间列留白.原因如下:三色原则能最大范围地适用”对比色配色方案“.”互补色配色方案“或者”邻近色配色方案“.不过,也可以根据实际需要进行多种颜色的搭配,只需要符合配色规律即

如何使用VSTO自动将Excel中的图表复制到Word

原文地址:https://code.msdn.microsoft.com/How-to-copy-Chart-in-Excel-a29f9029 该项目说明如何使用VSTO自动复制Excel中的图表 介绍 有些客户经常在MSDN论坛上提出这个问题. 但在MSDN画廊中没有现有的样本. 所以如果有样品,可以帮助客户解决问题. 客户证据: http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/21a2fd18-d850-40d9-9d

excel中VBA的使用

遇到的问题 在工作中遇到了一点小小的问题,需要给我负责带的班级的同学们测试男生1000米,女生800米的成绩.表格是这样的: 体育成绩表 序号 班级 姓名 性别 男1000.女800 成绩 1 1 张三 男 3.50   2 1 李四 女 3.44   我们在录入完成绩后,需要按照一定的标准去给出学生成绩,标准是这样的: 需要我们根据每个学生的成绩,给出对应的分数.于是,我就计算了下我的工作量:每个人对应的需要给分数,总共需要给六个班 x 70 个人也就是差不多420个人给分数.那样的一个工作量

中文 数据库 乱码 excel中导入数据到mysql 问题

数据库编码  表编码  ide编码 必须一致,即可解决问题 场景:把这些数据导入数据库,并且得到城市名称拼音的首字母 从excel中导入数据到mysql,使用了jxl这个库 使用了pinyin4这个库,但是发现有bug import java.io.UnsupportedEncodingException; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import ja