python上では動きますが、exe化にすると動かなくなります。
ライブラリのインポート
import glob
import openpyxl
import pandas as pd
空のデータフレームを作成
df = pd.DataFrame(columns=["施工月日", "打設順", "杭番号", "符号", "杭径", "杭実長", "掘削設計", "掘削実測", "増減長", "生コン設計", "生コン実測", "ロス率"])
ファイルパスのリスト取得
path_str = "t_*.xlsm"
paths = glob.glob(path_str)
for file_path in paths: # file_path変数にファイルパスが1つずつ入る
# 空の辞書を作成
wb_data = {}
# ブックを開く
wb = openpyxl.load_workbook(file_path, data_only=True)
# 野帳シートを取得
sheet = wb["野帳集計"]
value = sheet["A3"].value # A2セルの値取得 wb_data["施工月日"] = value # 行辞書に追加 value = sheet["B3"].value # B2セルの値取得 wb_data["打設順"] = value # 行辞書に追加 value = sheet["C3"].value # C2セルの値取得 wb_data["杭番号"] = value # 行辞書に追加 value = sheet["D3"].value # D2セルの値取得 wb_data["符号"] = value # 行辞書に追加 value = sheet["E3"].value # E2セルの値取得 wb_data["杭径"] = value # 行辞書に追加 value = sheet["F3"].value # E2セルの値取得 wb_data["杭実長"] = value # 行辞書に追加 value = sheet["G3"].value # E2セルの値取得 wb_data["掘削設計"] = value # 行辞書に追加 value = sheet["H3"].value # E2セルの値取得 wb_data["掘削実測"] = value # 行辞書に追加 value = sheet["I3"].value # E2セルの値取得 wb_data["増減長"] = value # 行辞書に追加 value = sheet["J3"].value # E2セルの値取得 wb_data["生コン設計"] = value # 行辞書に追加 value = sheet["K3"].value # E2セルの値取得 wb_data["生コン実測"] = value # 行辞書に追加 value = sheet["L3"].value # E2セルの値取得 wb_data["ロス率"] = value # 行辞書に追加 # 辞書をデータフレームに変換 add_df = pd.DataFrame([wb_data]) # データフレームに行を追加 df = pd.concat([df, add_df], axis=0, ignore_index=True) # ブックオブジェクトを閉じる wb.close()
書き込むExcelファイルのパス
write_file_path = "施工集計表.xlsx"
既存のワークブックを開く
wb = openpyxl.load_workbook(write_file_path)
シートを取得
sheet = wb["施工集計表"]
データフレームの内容を書き込む
for i in range(len(df)):
# 行のデータを取得
row_data = df.iloc[i]
# セルに値を書き込む
sheet.cell(row=i+8, column=1, value=row_data["施工月日"])
sheet.cell(row=i+8, column=2, value=row_data["打設順"])
sheet.cell(row=i+8, column=3, value=row_data["杭番号"])
sheet.cell(row=i+8, column=4, value=row_data["符号"])
sheet.cell(row=i+8, column=5, value=row_data["杭径"])
sheet.cell(row=i+8, column=6, value=row_data["杭実長"])
sheet.cell(row=i+8, column=7, value=row_data["掘削設計"])
sheet.cell(row=i+8, column=8, value=row_data["掘削設計"])
sheet.cell(row=i+8, column=9, value=row_data["増減長"])
sheet.cell(row=i+8, column=10, value=row_data["生コン設計"])
sheet.cell(row=i+8, column=11, value=row_data["生コン実測"])
sheet.cell(row=i+8, column=12, value=row_data["ロス率"])
ファイルを保存
wb.save(write_file_path)
ブックオブジェクトを閉じる
wb.close()
何が問題なのか模索していますが、原因が分かりません。
プログラミングの初心者ですので、分かりやすく解説していただけると助かります。