オフラインイベントといったらネームプレートだ!というわけで、Chatgptさんを使いつつ、今度のイベント用名刺カードを作った。
完成系
手順
名刺テンプレートのデザインが必要だったので、下記で掲載codepenを利用させてもらった。
Codepenをサインアップして、https://codepen.io/kohki-shikata/pen/NBBZyVをForkする。
一番右ペインにあるdata = をTechplayの入場者データに置き換えればよいので、入場者リストをCSVでダウンロードする。
徐ろにChatgptを開いて上記のdata = のフォーマットに合うようにデータ抽出をして、クリップボードにコピペしてもらうコードを生成する。
結果が下記。今回はTechplayのアンケートで氏名所属名職種などをきいたので、それをpersonのところで選択して抽出する。
import csv import subprocess # CSVファイルからデータを読み込む関数 def read_csv(filename): data = [] try: with open(filename, newline='', encoding='CP932', errors='ignore') as file: reader = csv.DictReader(file) for row in reader: person = { "name": row.get('氏名', ''), "position": row.get('所属名', ''), "email": row.get('職種', ''), "phone": row.get('受付番号', '') } data.append(person) return data except FileNotFoundError: print(f"Error: {filename} not found.") return [] # CSVファイルのパス csv_file = 'data.csv' # CSVファイルからデータを読み込む data = read_csv(csv_file) # JavaScriptの変数dataの文字列を作成 js_data = "var data = [\n" for person in data: js_data += " {\n" js_data += f" name: '{person['name']}',\n" js_data += f" position: '{person['position']}',\n" js_data += f" email: '{person['email']}',\n" js_data += f" phone: '{person['phone']}'\n" js_data += " },\n" js_data += "]" # クリップボードにデータを保存 process = subprocess.Popen('pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE) process.communicate(js_data.encode('utf-8')) print("Data has been copied to the clipboard.")
pythonで上記コードを実行するとクリップコードに保存されるので、dataの部分だけ上書きすれば良い。 dataの配列データが多い場合は表示がきれいにできないので、適当な数に減らして何回か分けてください。
CodepenをDebugモードで開き、印刷をすればできあがり。