見出し画像

バーコード・コマンド表作成省力化

以前に作ったバーコード端末を活用する際に、コマンド表を作成する必要がありました。デバッグ用のコマンド表はともかく、ロット番号や数量を含むもののように、頻繁に更新する必要がある場合はコマンド表作成の手間も馬鹿になりません。

予め作っておいた Excel シートの一部を Python で書き換えて新たなコマンド表を作るツールを作りました。
活用シーンによって詳細は異なると思うので、備忘録を兼ねて要点をまとめてみます。

今回もWeb検索で複数のサイトのお世話になりました。
ありがとうございます。

インストールと import

Raspberry Pi に以下をインストールしました。

pip3 install pyqrcode
pip3 install openpyxl
pip3 install pypng

プログラムの先頭で以下のように import しました。

import pyqrcode
import openpyxl as excel
from time import sleep

ワークシート読み込み

エクセルブック abc.xlsx の先頭シートを読み込んでいます。

           file_path = 'abc.xlsx'
           wb = excel.load_workbook(filename=file_path)
           ws = wb.worksheets[0]

QRコードを生成してファイル出力

文字列 test を示すQRコードを生成してファイル test.png に出力しています。

           cmd0 = 'test'
           png = cmd0 + '.png'
           a = pyqrcode.create(content=cmd0, error='H')
           a.png(file=png,scale=3)

QRコード画像をExcel シートに貼り付け

保存した画像 test.png を読み出して、セルC14に貼り付け、さらに文字列 test をセルC15に書き込んでいます。(ファイルに出力しない方法があればもっとスッキリしますが・・・今の所不明です。)

           img = excel.drawing.image.Image(png)
           img.anchor = 'C14'
           ws.add_image(img)
           ws['C15'] = cmd0
Excel シートに複数の画像がある場合は全て書き換えないと消えてしまうようです。私は変更しない画像(QRコード)も再度生成して同じ位置に貼り付けました。

Excel ブックを別名で保存して閉じる

test.xlsx として保存しています。

           ofn = cmd0 + '.xlsx'
           wb.save(ofn)
           wb.close()

これだけで出来ることは沢山あると思う

動作確認後は Pyinstaller で EXE化し、Windows PC で使ってもらっています。
普段使っているPCなので、抵抗なく使い始めてくれました。

セルに計算式を入れたりするのは openpyxl だけでは出来ないなど少々面倒そうですが、予め作っておいたシートの値を変えて新たなブックを追加するのは意外に簡単です。

これだけで便利に使える場面は沢山あるように思います。

QRコードが並んだ生産手配書でヒューマンエラー防止など、出来るところから活用して、徐々にレベルアップ出来れば良さそうです。


何らか参考になれば幸いです。

今後共宜しくお願いいたします。






出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。