各サイトやPythonの本などを読んで取り組んでいる初学者です。
どなたかご教授お願い致します。
請求書作成のサイトを参考に、pytonで評価表を作っています。
(実際は取引先の評価表を作っているため、名前カラムが"社名"になっています)
一覧で作成された成績表をもとに、各人毎の評価表エクセルを作り、PDFにもして保存したいです。
実現したいこと
- 一覧で作成された成績表をもとに、各人毎の評価表エクセルを作る。
- PDFにもして保存する。
評価表A2に個人名 C8セルからE12セルまでに、評価とコメントを入れたい
出来ずに困っていること
D8セルからE12セルに成績データを入力していくfor文の書き方がわからない
該当のソースコード
pyton
1import xlwings as xw 2import pandas as pd 3import os 4 5#対象エクセルのファイルパスを指定 6hyoukapath = 'evaluation_list.xlsx' 7templatepath = 'template.xlsx' 8out_dir = '\\output' 9 10#エクセルを読み込む 11df = pd.read_excel(hyoukapath) 12 13#個人のリストを作成 14namaea_list = sorted(list(df['社名'].unique())) 15 16 17#エクセル開く 18App = xw.App() 19 20#名前ごとに処理 21for namae in namae_list: 22 23 # テンプレートを開く 24 wb = App.books.open(templatepath) 25 ws = wb.sheets('テンプレート') 26 27 # 名前ごとにフィルターしてリストに変換 28 filtered = df[df['社名'] == f'{namae}'] 29 values = filtered.values.tolist() 30 31 # 評価をテンプレートへ書き込む 32 for x, cell in enumerate(namae): 33 #この部分がわからない 34 35 # テンプレートに各情報を出力 36 ws.range('A2').value = namae 37 ws.name = namae 38 39 # テンプレートをPDFとして保存 40 wb.api.ExportAsFixedFormat(0, out_dir) 41 os.startfile(pdf_path) 42 43 # テンプレートを新しいエクセルとして保存 44 wb.save(r'output\\'+ namae) 45 wb.close() 46 47# エクセルをアプリケーションごと閉じる 48App.quit()
試してみたこと
個人ごとのデータは、エクセルで横向きに並べて、複数の値がある辞書型のデータでも作成してみましたが、どうやって値を貼り付ければいいのかわからなくて挫折しました。
補足情報(FW/ツールのバージョンなど)
Pythonは3.9です
どうぞよろしくお願い致します
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。