Python 筆記 - Excel 批次轉置與檔案更新檢查

更新於 發佈於 閱讀時間約 4 分鐘

Python 筆記 - Excel 批次轉置與檔案更新檢查

我是只會excel新手,VBA、巨集也都不太會的那種,最近要來處理龐大數量且稱差不齊的excel檔案,真是一大難題,本身也沒有任何程式語言經驗,我決定用chatGPT自學excel python相關語法,以下是筆記內容

網路論壇上有許多安裝python、執行的教學,就不多做贅述

若是有問題歡迎留言討論

1. GUI 介面 (tkinter)

import tkinter as tk
from tkinter import filedialog, messagebox

root = tk.Tk()
root.withdraw() # 隱藏主視窗
folder = filedialog.askdirectory(title="選擇資料夾") # 選擇資料夾
messagebox.showinfo("通知", f"選擇的資料夾: {folder}") # 顯示選擇結果

2. 讀取 Excel 檔案 (pandas)

import pandas as pd
xls = pd.ExcelFile("data.xlsx") # 讀取 Excel 檔案
df = pd.read_excel(xls, sheet_name="頭頸CTCAE", engine="openpyxl") # 讀取特定工作表

3. 轉置 DataFrame

df_transposed = df.T  # 轉置 DataFrame

4. 儲存 Excel 檔案

df_transposed.to_excel("new_file.xlsx", index=False, header=False, engine="openpyxl")

5. 取得檔案清單 (os)

import os
files = os.listdir("資料夾路徑") # 取得資料夾內所有檔案名稱
if file.endswith(".xlsx") and not file.startswith("~$"):  # 避免處理 Excel 暫存檔

6. 建立轉換後的檔案名稱

file_name = os.path.splitext("data.xlsx")[0]  # 取得 "data"(去掉 .xlsx)
new_filename = f"{file_name}_頭頸CTCAE.xlsx"

7. 比對檔案是否需要更新

import hashlib

def calculate_file_hash(df):
hash_md5 = hashlib.md5()
hash_md5.update(pd.util.hash_pandas_object(df, index=True).values.tobytes())
return hash_md5.hexdigest()
def needs_update(new_file_path, transposed_df):
if not os.path.exists(new_file_path):
return True # 目標檔案不存在,直接儲存

try:
existing_df = pd.read_excel(new_file_path, engine='openpyxl')
return calculate_file_hash(transposed_df) != calculate_file_hash(existing_df) # 內容不同才更新
except Exception:
return True # 讀取失敗時,強制更新

8. 記錄錯誤與處理結果

log_messages = ["更新檔案: example.xlsx", "跳過未變更檔案: sample.xlsx"]
with open("Transpose_Log.txt", "w", encoding="utf-8") as log_file:
log_file.write("\n".join(log_messages))
留言
avatar-img
留言分享你的想法!
avatar-img
蘇護理師在學習中
0會員
1內容數
Hi
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News