はじめに
初学者がPythonなど勉強しています。
目的
(共通)働く環境を改善しましょう。人とAIの仕事の切り分けを推進したい。
(今回)powerappsで読み込むためのQRコード生成
マイルストーン
- 目的の確認
- 現場意向確認
- AIよコードを生成しておくれ!
- 付加価値
- HAPPY!!
目的
現状手作業の部分をタブレットでデータ収集+分析への第一歩
QRコードで読み取ることでできるかぎり間違いを無くす。
コード
chatGPTを少しでも効率よく活用できるようなプロンプトを勉強する。
OUTPUT重視
今回はエクセルファイルから抽出したいため、エクセルファイルから活用
作成時間は30min
DataDL.py
import os
import math
import openpyxl
from PIL import Image, ImageFont, ImageDraw
def print_qr_codes(excel_file, sheet_name, qr_directory):
# メイリオフォントのパス
font_path = "C:/Windows/Fonts/meiryo.ttc"
# エクセルファイルを読み込み
workbook = openpyxl.load_workbook(excel_file)
sheet = workbook[sheet_name]
# QRコード画像のファイルリストを取得
qr_files = [file for file in os.listdir(qr_directory) if file.endswith('.png')]
# QRコード画像の数を取得
num_qr_codes = len(qr_files)
# 1ページに印刷するQRコードの数
codes_per_page = 3 * 8
# A4用紙のサイズ
page_width = 2480 # ピクセル単位
page_height = 3508 # ピクセル単位
# 1つのQRコードの幅と高さ
qr_width = page_width // 3
qr_height = page_height // 8
# 印刷するQRコード画像の座標
x = 0
y = 0
# メイリオフォントを指定
title_font = ImageFont.truetype(font_path, 32)
# 新しいページのイメージを作成
page_image = Image.new('RGB', (page_width, page_height), 'white')
draw = ImageDraw.Draw(page_image)
# QRコードを1つずつ配置していく
for i in range(num_qr_codes):
qr_code_file = qr_files[i]
qr_code_path = os.path.join(qr_directory, qr_code_file)
# QRコード画像を開く
qr_code_image = Image.open(qr_code_path)
# QRコード画像を指定の位置に貼り付け
page_image.paste(qr_code_image, (x, y))
# エクセルのC列のデータを取得
data = sheet.cell(row=i+2, column=3).value
# データが文字列でない場合は文字列に変換
if not isinstance(data, str):
data = str(data)
# ページにタイトルを追加
try:
draw.text((x, y), data, font=title_font, fill='black')
except TypeError:
print("データを印刷します:", data)
# QRコードの位置を更新
x += qr_width
if x >= page_width:
x = 0
y += qr_height
# ページを保存
page_image.save("printed_page.png")
print("ページが保存されました。")
if __name__ == "__main__":
# エクセルファイルのパス
excel_file = 'data.xlsx'
# 使用するシート名
sheet_name = 'Sheet1'
# QRコードの保存先ディレクトリ
qr_directory = 'QRディレクトリ'
# QRコードを印刷する関数を呼び出す
print_qr_codes(excel_file, sheet_name, qr_directory)
付加価値
QRを活用することで、
デバイス管理用やマニュアル、各種ムービー/情報に展開させる。
わからなくてもQRですぐフォローできるような状況にしておこう。
HAPPY!!!
ここまで読んでいただきありがとうございました。
OUTPUT継続していきましょう。