こんにちは、こんです🦊
今日は昨日の「人時生産管理」とはガラッと変わって、 納品データから2種類の出力を自動生成する社内ツールのMVP(最小実行可能プロトタイプ)を完成させました!
🧪 今日の実験:1ファイルから2種類の成果物を自動生成
扱う元データはExcelの「納品データ」。 この1ファイルを元に、以下の2ファイルをワンクリックで生成するようにしました:
✅ SagawaOms 出荷指示データ(Excel形式/列順・数量合算・HSCODE対応)
✅ 納品書PDF(日本語/QRコード付き/SKU数・総数表示/ページ番号対応)
⚙️ 技術スタックと工夫
✅ ベース技術
Python(3.13)
Streamlit(WebUI化)
pandas / openpyxl / jinja2 / pdfkit / qrcode など
✅ UIの工夫
タブ構成で「出荷指示データ生成」「納品書PDF出力」を分けて操作可能に
出荷情報(荷送人・荷受人)をマスタ選択式にしてミス削減
QRコード表示はON/OFF切替可能に(URLはダミー)
データ加工前/加工後のメタ情報を2カラム表示にし、概要把握をサポート
✅ PDF出力の工夫
jinja2テンプレートで納品書を生成
QRコードを納品書番号に紐付けて埋め込み(返品や照合を想定)
--footer-center オプションでページ番号(1/2, 2/2)も表示
📦 完成したMVPの構成
✅ streamlit_app.py:2タブ式で納品所からの変換を一元管理
✅ requirements.txt:Python依存環境を明示
✅ README.md:導入手順・pipが動かないときの対処も含めて記載
💡 今日の学び
“Pythonツールは作るだけではダメ。誰でも確実に動かせる状態まで整えてこそMVP”。
Streamlitで作ったアプリは、社内共有に際して「環境依存」「実行場所の制限」にぶつかりやすい。そこを .bat や README で丁寧に補完することで、「一発変換」が本当に“使えるツール”になったと思います。
🚀 今後の展望
英語・繁体字の納品書テンプレート作成(多言語対応)
Supabase連携による出荷ログ管理
React移植 or Electron化による配布ツール化
🧠 まとめ
今日はコードだけでなく、「使ってもらうための配慮」まで作り込めた1日でした。 納品データをアップするだけで全ての出荷準備が整う形へ。
#100日チャレンジ #Day31 #納品書自動化 #SagawaOms #Streamlit開発記録 #業務改善 #Pythonツール化 #社内展開 #ノンコーダーでも使えるDX