概要
キャンペーンや製品等に内容の違う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 件のコメント :
コメントを投稿