解決問題--在Excel中使用條碼字型列印出的code128條碼不能被識別

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   for   

在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

解決問題--在Excel中使用條碼字型列印出的code128條碼不能被識別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.