概要
キャンペーンや製品等に内容の違うQRコードを大量に作る方法です。
エクセルからpythonでQRコードの画像を大量に作れます。
URLや日本語や長文でも大丈夫です。
詳しくはないので詳細は調べてください。。。
多少プログラムの知識が必要です。
仕事で必要だったので健忘録用です。
準備と必要なもの
ざっくりPythonが動く環境とエクセルファイルです。
1.PythonをPCに導入します。
Pythonをインストール後、以下のライブラリを導入。
QRコード画像生成ライブラリ「qrcode」の導入をします。
例:Windowsの場合、cmdでpip install qrcode[pil]
エクセルを操作するライブラリ「openpyxl」の導入をします。
例:Windowsの場合、cmdでpip install openpyxl
2. 以下のようなエクセルを用意します。
A列に変換したい文字列、B列にファイル名を入れます。
2行目以降が変換対象です。
qrcode.xlsxと名前で保存します。
3. プログラムを用意します。
テキストエディタで以下のプログラム内容をqr.pyという名前で保存します。
文字コードはUTF-8です。
import io import re import os import qrcode import zipfile import openpyxl as excel from PIL import ImageDraw # Excelのパス EXCEL_FILE_PATH = os.path.join(os.path.dirname(__file__), 'qrcode.xlsx') wb = excel.load_workbook(EXCEL_FILE_PATH, data_only=True) ws = wb.active zip_stream = io.BytesIO() img_zip_file = zipfile.ZipFile(zip_stream, 'w') for cnt, row in enumerate(ws.rows): if cnt > 0: file_str = str(row[1].value) code_str = str(row[0].value) name = row[1].value img = qrcode.make(code_str) draw = ImageDraw.Draw(img) img_stream = io.BytesIO() img.save(img_stream, 'PNG') img_zip_file.writestr( re.sub(r'[\\/:*?"<>|]+', '_', file_str) + '.png', img_stream.getvalue()) img_stream.close() img_zip_file.close() with open(os.path.join(os.path.dirname(__file__), 'qr_code_make.zip'), 'wb') as out: out.write(zip_stream.getvalue()) zip_stream.close()
4. プログラムを実行します。
qr.pyとqrcode.xlsxを同じフォルダに入れて、ファイルエクスプローラーのパスが表示されているアドレスバーにcmdと入力エンター。
黒い画面が立ち上がります。
黒い画面でpython qr.pyと入力します。
qr_code_make.zipというファイルが作成されます。解凍すると以下のようなQRコードのpng画像が作成されます。
あいう.png オリジナル
以上、説明不足ですが何かの役に立てたら幸いです。
それでは、pythonで仕事効率化を!
0 件のコメント :
コメントを投稿