###Excelデータの転記
Python初心者です。
フォルダ内に顧客別に作成している伝票(wb)から必要な情報のみを
転記し、請求書(wb)、納品書(wb)の作成をしたいと思っています。
フォルダ内には5社分のワークブックが入っており、最終、請求書(wb)、納品書(wb)に
顧客別にシートを増やしていきたいと考えています。
ベースのプログラムはインターネットから取ってきました。
請求書、納品書のシートが5つ書き出されるのですが、
最後の顧客情報が5つのシートにコピーされてしまいます。
ご教示頂けると幸いです。
元URL:https://news.mynavi.jp/article/zeropython-37/
該当のソースコード
Python
1ソースコード 2import openpyxl, pprint 3from datetime import datetime 4import glob 5import pandas as pd 6# ファイル名の指定など --- (*1) 7file_list = glob.glob(r'C:\Users\デスクトップ\october*.xlsx')# 納品物一覧 8file_invoice= "invoice.xlsx" # 請求書のテンプレート 9file_delivery = "delivery_slip.xlsx" # 納品書のテンプレート 10file_out_iv = "out-invoice.xlsx" # 生成する請求書 11file_out_ds = "out-delivery_slip.xlsx" # 生成する納品書 12# 納品物一覧を読み込む --- (*2) 13for list in file_list: 14 wb = openpyxl.load_workbook(list, data_only=True) # 数式でなく値を取り出す場合 15 ws = wb.active # sheet1を選ぶ 16 name = ws["C3"].value # 宛名を得る 17 iv_no = ws["J2"].value #伝票number 18 list_data = ws["C8"].value # 任意の範囲を取得 19 price_tax = ws["F20"].value #税込み金額 20# 請求書と領収書のテンプレートを読む --- (*3) 21wb_iv = openpyxl.load_workbook(file_invoice) 22ws_iv = wb_iv.active 23wb_ds = openpyxl.load_workbook(file_delivery) 24ws_ds = wb_ds.active 25# 宛名と日付を書き込む --- (*4) 26for list in file_list: 27 cdate = datetime.now().strftime("%Y/%m/%d") 28 ws_iv["A3"].value = name 29 ws_iv["F2"].value = cdate 30 ws_ds["A3"].value = name 31 ws_ds["F2"].value = cdate 32# 納品物を書き込む --- (*5) 33for list in file_list: 34 ws_iv["A13"].value = list_data 35 ws_iv["F13"].value = price_tax 36 ws_ds["A13"].value = list_data 37 ws_ds["F13"].value = price_tax 38# 新しく保存する --- (*6) 39for list in file_list: 40 ws_new_iv = wb_iv.copy_worksheet(ws_iv) 41 ws_new_iv.title = str(iv_no) 42 ws_new_ds = wb_ds.copy_worksheet(ws_ds) 43 ws_new_ds.title = str(iv_no) 44wb_iv.save("請求書.xlsx") 45wb_ds.save("納品書.xlsx") 46
補足情報(FW/ツールのバージョンなど)
windows10
anaconda3 64bit
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。