整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          你會(huì)在Excel中批量生成 條形碼 嗎?


          形碼可以標(biāo)出物品的生產(chǎn)國、制造廠家、商品名稱、生產(chǎn)日期、圖書分類號(hào)、郵件起止地點(diǎn)、類別、日期等許多信息,因而在商品流通、圖書管理、郵政管理、銀行系統(tǒng)等許多領(lǐng)域都得到廣泛的應(yīng)用。

          那么如何在Excel中快速生成條形碼呢?我們以前看到的方法有:

          • 用Excel中的控件生成

          • 借助文本文件生成

          • 借且VBA代碼生成

          • .....

          其實(shí)都太麻煩,可以更簡(jiǎn)單。

          看下面Excel中的操作,輸入數(shù)字就條形碼已自動(dòng)生成:

          原來是安裝了一種 條形碼字體,就是靠它直接轉(zhuǎn)換的:

          字體安裝的方法也很簡(jiǎn)單:

          1、從網(wǎng)上下載相關(guān)的條形碼字體

          下載地址:http://font.chinaz.com/tiaoxingmaziti.html

          (另: 條件碼有很多格式,都對(duì)應(yīng)有字體文件,本文下載的是code128.ttf 格式)

          2、安裝字體

          把下載的字體文件復(fù)制粘貼到C:\Windows\Fonts 文件夾中即可。(文件格式為 ttf )

          安裝完成后,在打開Excel中的字體列表中,也可以看到條形碼字體了

          其實(shí)今天還要掌握字體的安裝方法,如果你Excel中需要什么特殊字體,先去網(wǎng)上下載字體文件,然后復(fù)制粘貼到C:\Windows\Fonts 文件夾中即可。這個(gè)技巧多數(shù)用戶還不知道,快分享出去吧。

          維碼又稱QR Code,是一個(gè)近幾年來移動(dòng)設(shè)備上很流行的一種編碼方式它比傳統(tǒng)的一維碼(條形碼)能存更多的信息,也能表示更多的數(shù)據(jù)類型。按照一定規(guī)律排列組成的幾何圖形構(gòu)成,它巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念

          生活中的應(yīng)用也是非常的廣泛

          人們的生活方方面面都離不開二維碼,而且她也給人們帶來了極大的便利。

          <br><br> (二維碼自動(dòng)識(shí)別)

          二維碼有哪些優(yōu)缺點(diǎn):

          優(yōu)點(diǎn):

          • 1.高密度編碼,信息容量大。
          • 2.編碼范圍廣。
          • 3.容錯(cuò)能力強(qiáng),具有糾錯(cuò)功能。
          • 4.譯碼可靠性高。
          • 5.可引入加密措施。
          • 6.成本低,易制作,持久耐用。

          缺點(diǎn):

          • 1.個(gè)人信息泄露 (火車票上都已經(jīng)有了可以儲(chǔ)存?zhèn)€人信息的二維碼)
          • 2.識(shí)別二維碼的設(shè)備還不夠豐富。

          QRCode.js

          下面進(jìn)入正題,如何用js生成二維碼,
          QRCode.js 是一個(gè)用于生成二維碼的 JavaScript 庫。主要是通過獲取 DOM 的標(biāo)簽,再通過 HTML5 Canvas 繪制而成,不依賴任何庫??梢钥焖俚脑趙eb頁面中繪制出二維碼。

          通過獲取 DOM 的標(biāo)簽,再通過 HTML5 Canvas 繪制而成,不依賴任何庫

          引入相應(yīng)js文件 :

          <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>`
          <script src="https://cdn.bootcdn.net/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>

          在html中設(shè)置頁面容器。用來承載生成之后的二維碼顯示

          調(diào)用:

          $(網(wǎng)頁容器).qrcode({寬度:值,高度:值,內(nèi)容:值});

          <!DOCTYPE html>
          <html>
          <head lang="en">
              <meta charset="UTF-8">
              <script src="jquery-1.8.3.js"></script>
              <script src="jquery.qrcode.min.js"></script>
              <title></title>
          </head>
          <script>
              function demo(){
                 // $(網(wǎng)頁容器).qrcode({寬度:值,高度:值,內(nèi)容:值});
                  $("#code").qrcode({wihth:150,height:200,text:"HellowWord"});
              }
          </script>
          <body>
              <div id="code"></div>
              <button onclick="demo()">點(diǎn)我生成</button>
          </body>
          </html>

          注意:

          但是有可能中文會(huì)出現(xiàn)亂碼

          編寫方法轉(zhuǎn)換中文內(nèi)容,接收參數(shù)判斷當(dāng)前數(shù)據(jù)的Unicode

          function utf16to8(str) {  
              var out, i, len, c;  
              out = "";  //創(chuàng)建空變量保存結(jié)果
              len = str.length; //設(shè)置傳入形參數(shù)據(jù)長度
              for(i = 0; i < len; i++) {  
          		c = str.charCodeAt(i);  //返回字符串第一個(gè)字符的 Unicode 編碼: 
          		if ((c >= 0x0001) && (c <= 0x007F)) {  //判斷Unicode 編碼范圍
          			out += str.charAt(i);  
          		} else if (c > 0x07FF) {  
                      //將 Unicode 編碼轉(zhuǎn)為一個(gè)字符
          			out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));  
          			out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));  
          			out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
          		} else {  
                      //將 Unicode 編碼轉(zhuǎn)為一個(gè)字符
          			out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));  
          			out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
          		}  
              }  
              //返回出結(jié)果
              return out;
          }
          

          最終在使用時(shí)調(diào)用當(dāng)前方法進(jìn)行中文轉(zhuǎn)換

          <!DOCTYPE html>
          <html>
          <head lang="en">
              <meta charset="UTF-8">
          
              <script src="jquery-1.8.3.js"></script>
              <script src="jquery.qrcode.min.js"></script>
              <script src="handler-chinese.js"></script>
              <title></title>
          </head>
          <style>
              #demodiv{
                  text-align: center;
              }
              #demodiv>input{
                  outline: none;
                  border: 1px red solid;
                  width: 300px;
                  height: 50px;
                  font-size: 30px;
                  padding-left: 10px;
              }
          </style>
          <script>
             function demo(){
                 //獲取輸入框結(jié)果
                 var text=$("#demodiv>input").val();
                  //調(diào)用裝換方法
                  var newText=utf16to8(text)
                  //設(shè)置范圍大小并且設(shè)置生成二維碼內(nèi)容
                  $("#code").qrcode({wihth:150,height:200,text:newText});
              }
          </script>
          <body>
                  <div id="demodiv" >
                      <h1>QRCode生成二維碼</h1>
                      <input type="text"/>
                      <!--調(diào)用轉(zhuǎn)換方法-->
                      <button onclick="demo()">點(diǎn)我生成</button>
                  </div>
          <div id="code"></div>
          </body>
          </html>

          瀏覽器兼容性

          IE6?10,Chrome,F(xiàn)irefox,Safari,Opera,Mobile Safari,Android,Windows Mobile,ETC。

          總結(jié)

          QRCode.js 是用于制作 QRCode 的JavaScript庫。QRCode.js 通過 HTML5 Canvas 和DOM中的表格標(biāo)簽支持跨瀏覽器。QRCode.js 沒有依賴關(guān)系。通過 QECode.js 可以非常方便的在web 頁面中使用二維碼。讓我們?cè)趹?yīng)用中便捷的使用,擴(kuò)展了項(xiàng)目的適用范圍。讓用戶可以快捷的訪問相關(guān)資源。提升項(xiàng)目的用戶體驗(yàn),使我們的應(yīng)用更加符合當(dāng)下用戶的適用習(xí)慣,增加用戶的黏性。

          開始之前先給各位上個(gè)運(yùn)行效果圖

          二維碼QRcode全稱Quick Response Code

          通過在一個(gè)矩形區(qū)域內(nèi)使用黑白像素來進(jìn)行編碼

          高糾錯(cuò)性、高可用性、高識(shí)別性

          四周面有3個(gè)大的方框和一個(gè)小的方框,用于二維碼的定位。通過識(shí)別這幾個(gè)標(biāo)識(shí)位來定位二維碼,并對(duì)它進(jìn)行解析。二維碼的快速發(fā)展得益以智能手機(jī)的快速發(fā)展,常別用在數(shù)據(jù)分享和手機(jī)收款、付款

          更多內(nèi)容參考360百科http://baike.so.com/doc/6326261-6539869.html

          比較有名的二維碼第三方庫ZXing (谷歌所開源的二維碼掃描庫,用于在Android、javaSE)

          Zxing是谷歌開放源碼的,用Java實(shí)現(xiàn)的多種格式的1d、2d條碼圖像處理,它包含聯(lián)系到其他語言的端口

          ZXing可以實(shí)現(xiàn)使用手機(jī)的內(nèi)置的攝像頭完成條形碼掃描和解碼

          https://github.com/ThePacific/zxing-barcode

          由于谷歌的ZXing開源庫功能過于強(qiáng)大,而且比較難以快捷集成到我們的項(xiàng)目中,我在此提供一個(gè)ZXing經(jīng)過處理的第三方開源庫,放在360網(wǎng)盤供大伙下載希望對(duì)各位朋友會(huì)有所幫助

          下載地址:https://yunpan.cn/cPaUIBZE3Npiy 訪問密碼 b316

          生成二維碼工具

          網(wǎng)絡(luò)可以生成二維碼的網(wǎng)站很多如“草料二維碼” http://cli.im/

          360瀏覽器的地址欄也有自帶二維碼

          Firefox瀏覽器的地址欄也有自帶二維碼

          現(xiàn)在開始進(jìn)入正題,ZXing第三方庫引入到我們的工程

          在android studio 中創(chuàng)建一個(gè)自己的新工程或在現(xiàn)有的項(xiàng)目中應(yīng)用: czgLearnAndroidDemo

          引入第三庫的詳細(xì)步驟我再“Android Studio 使用百度移動(dòng)生態(tài)SDK(廣告聯(lián)盟)”博文中很詳細(xì)的圖文說明,如不熟悉可查看該博文。

          第一步:需要引入

          libzxing工程

          選擇菜單:File/new/import module

          第二步:將libzxing工程引入到項(xiàng)目中

          右鍵項(xiàng)目選擇菜單open module settings

          選擇app/ dependencies/+加號(hào)/Module dependencies,把libzxing選擇并添加進(jìn)去

          注意:引入后我們不需要手工添加CAMERA、VIBRATE的權(quán)限,因?yàn)槲覀円氲膌ibzxing模塊的AndroidManifest.xml中已經(jīng)幫我們添加好需要的權(quán)限。

          第三步:在工程中創(chuàng)建XZingMainActivity(Activity)

          activity_zxing_main.xml

          <?xml version="1.0" encoding="utf-8"?>

          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

          xmlns:tools="http://schemas.android.com/tools"

          android:layout_width="match_parent"

          android:layout_height="match_parent"

          android:orientation="vertical"

          android:paddingBottom="@dimen/activity_vertical_margin"

          android:paddingLeft="@dimen/activity_horizontal_margin"

          android:paddingRight="@dimen/activity_horizontal_margin"

          android:paddingTop="@dimen/activity_vertical_margin"

          tools:context=".XZingMainActivity">

          <Button

          android:layout_width="fill_parent"

          android:layout_height="wrap_content"

          android:text="掃描二維碼"

          android:id="@+id/btn_scan"

          android:layout_alignParentLeft="true"

          android:layout_alignParentStart="true"

          android:onClick="scan" />

          <TextView

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:text="---顯示掃描結(jié)果----"

          android:textSize="22dp"

          android:id="@+id/tv_ScanResult" />

          <EditText

          android:layout_width="match_parent"

          android:layout_height="wrap_content"

          android:id="@+id/et_Text"

          android:hint="這里請(qǐng)輸入你要生成二維碼的內(nèi)容" />

          <CheckBox

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:text="二維碼是否要包含圖片Logo"

          android:id="@+id/cb_includeLogo"

          android:checked="false" />

          <Button

          android:layout_width="fill_parent"

          android:layout_height="wrap_content"

          android:text="生成二維碼QRcode"

          android:id="@+id/btn_CreateQRcode"

          android:onClick="CreateQRode" />

          <ImageView

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:id="@+id/imgv_QRcode"

          android:layout_gravity="center_horizontal"

          android:background="@drawable/appicon" />

          </LinearLayout>

          package czg.czgxzing;

          import android.content.Intent;

          import android.graphics.Bitmap;

          import android.graphics.BitmapFactory;

          import android.hardware.camera2.CaptureRequest;

          import android.support.v7.app.AppCompatActivity;

          import android.os.Bundle;

          import android.util.Log;

          import android.view.View;

          import android.widget.CheckBox;

          import android.widget.EditText;

          import android.widget.ImageView;

          import android.widget.TextView;

          import android.widget.Toast;

          import com.xys.libzxing.zxing.activity.CaptureActivity;

          import com.xys.libzxing.zxing.encoding.EncodingUtils;

          public class XZingMainActivity extends AppCompatActivity {

          private TextView tv_ScanResult;

          private EditText et_Text;

          private ImageView imgv_QRcode;

          private CheckBox cb_includeLogo;

          @Override

          protected void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          setContentView(R.layout.activity_zxing_main);

          tv_ScanResult= (TextView) findViewById(R.id.tv_ScanResult);

          et_Text= (EditText) findViewById(R.id.et_Text);

          imgv_QRcode= (ImageView) findViewById(R.id.imgv_QRcode);

          cb_includeLogo= (CheckBox) findViewById(R.id.cb_includeLogo);

          }

          //直接調(diào)用第三方ZXing庫的api進(jìn)行掃描

          public void scan(View view){

          startActivityForResult(new Intent(XZingMainActivity.this,

          CaptureActivity.class),0);

          }

          @Override

          protected void onActivityResult(int requestCode, int resultCode, Intent data) {

          super.onActivityResult(requestCode, resultCode, data);

          if (resultCode==RESULT_OK){

          Bundle bundle=data.getExtras();//通過Bundle獲取掃描后的結(jié)果數(shù)據(jù)

          String sResult=bundle.getString("result");

          tv_ScanResult.setText(sResult);

          System.out.println("查看讀取值"+sResult);

          }

          }

          public void CreateQRode(View view){

          String sInput=et_Text.getText().toString();

          if (sInput.equals("")){

          Toast.makeText(XZingMainActivity.this,"還沒輸入要生成的二維碼,請(qǐng)輸入要生成二維碼的內(nèi)容",Toast.LENGTH_SHORT).show();

          }else{

          if (cb_includeLogo.isChecked()==false){

          //調(diào)用ZXing類庫的createQRCode生成二維碼----不包含圖片

          Bitmap bitmap= EncodingUtils.createQRCode(sInput,500,500,null);

          imgv_QRcode.setImageBitmap(bitmap);

          }else{

          //調(diào)用ZXing類庫的createQRCode生成二維碼----包含圖片

          Bitmap bitmap= EncodingUtils.createQRCode(sInput,500,500,

          BitmapFactory.decodeResource(getResources(),R.drawable.appicon));

          imgv_QRcode.setImageBitmap(bitmap);

          }

          }

          }

          }

          最后感謝提供的分享平臺(tái),

          分享是一種美德,牽手是一種生活方式。


          主站蜘蛛池模板: 无码人妻精品一区二区三区夜夜嗨| 亚洲Aⅴ无码一区二区二三区软件| 精品视频一区二区三区| 成人精品视频一区二区三区| 亚洲日本va午夜中文字幕一区| 日韩三级一区二区| 熟女少妇精品一区二区| 国产成人高清亚洲一区久久| 无码少妇一区二区三区| 视频一区二区在线播放| 在线观看亚洲一区二区| 精品性影院一区二区三区内射| 国产精久久一区二区三区 | 一区二区三区日本视频| 精品国产一区二区三区av片| 亚洲国产精品一区二区久| 天天看高清无码一区二区三区| 日本一区二三区好的精华液| 亚洲国产AV无码一区二区三区| 国产91精品一区二区麻豆网站| 亚洲一区二区三区在线观看蜜桃| 国产精品视频一区二区三区无码| 日本视频一区二区三区 | 色婷婷香蕉在线一区二区| 亚洲综合一区二区三区四区五区| 亚洲高清一区二区三区| 久久一区二区三区精华液使用方法| 亚洲综合一区二区精品久久| 精品不卡一区二区| 日本一区二区三区不卡视频中文字幕 | 在线免费视频一区二区| 蜜桃视频一区二区三区| 久久中文字幕一区二区| 国产精品电影一区| 伊人色综合一区二区三区| 春暖花开亚洲性无区一区二区| 国产一区二区四区在线观看| 亚洲色精品三区二区一区| 久久婷婷色一区二区三区| 无码人妻精品一区二区蜜桃百度 | 国产高清在线精品一区二区|