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
留言分享你的想法!
本篇參與的主題活動
pixiv 發表 BOOTH 3D 虛擬物件交易白皮書 2025,去年平台上 3D 模型交易金額增加 187%,交易件數也翻倍。「今年很可能是行動虛擬角色元年!」pixiv 整合旗下 VRoid、BOOTH 資源,並發表 VEAT,進軍手機 app ,期望讓 3D avatar 擴散至更多平台。
這套寶可夢牌組以瑪沙耶、恰雷姆、利歐路和路卡利歐為核心,搭配瑪夏多和樹才怪,透過巧妙的組合和運氣,能在短時間內打出高傷害。本文詳細介紹牌組配置、核心戰術、優缺點分析和戰術提示,適合喜歡高風險高回報玩法的玩家。
身為一個崇尚極簡主義者,近期我也把身邊的包包精簡到三個,並且感受到包包斷捨離後的好處,一起來看我是如何實踐的吧!
我的得力助手T小姐在短時間內經歷了2次流產。 第一次流產後沒幾個月又急著要懷上,其實我還蠻不能理解的,身體都還沒復原、還沒查清楚流產的原因又急著懷孕真的風險太大。第二次也是在6周左右又流產了,這次終於好好的去醫院檢查原因,然後讓身體休息了近一年才又懷孕。 但是我聽了他上次流產的原因,是染色體異常
本文將為大家介紹一套以葉伊布GX為核心的水草混合治癒型控場牌組,適合喜歡持久戰的玩家。 目錄 牌組概述 核心卡片介紹 配套訓練家卡 能量配置策略 對戰技巧 常見對手應對 替換建議 牌組概述 這套牌組以葉伊布ex為核心,搭配水屬性能量與珠貝的治癒效果,打造一套難以擊倒的生存型牌
pixiv 發表 BOOTH 3D 虛擬物件交易白皮書 2025,去年平台上 3D 模型交易金額增加 187%,交易件數也翻倍。「今年很可能是行動虛擬角色元年!」pixiv 整合旗下 VRoid、BOOTH 資源,並發表 VEAT,進軍手機 app ,期望讓 3D avatar 擴散至更多平台。
這套寶可夢牌組以瑪沙耶、恰雷姆、利歐路和路卡利歐為核心,搭配瑪夏多和樹才怪,透過巧妙的組合和運氣,能在短時間內打出高傷害。本文詳細介紹牌組配置、核心戰術、優缺點分析和戰術提示,適合喜歡高風險高回報玩法的玩家。
身為一個崇尚極簡主義者,近期我也把身邊的包包精簡到三個,並且感受到包包斷捨離後的好處,一起來看我是如何實踐的吧!
我的得力助手T小姐在短時間內經歷了2次流產。 第一次流產後沒幾個月又急著要懷上,其實我還蠻不能理解的,身體都還沒復原、還沒查清楚流產的原因又急著懷孕真的風險太大。第二次也是在6周左右又流產了,這次終於好好的去醫院檢查原因,然後讓身體休息了近一年才又懷孕。 但是我聽了他上次流產的原因,是染色體異常
本文將為大家介紹一套以葉伊布GX為核心的水草混合治癒型控場牌組,適合喜歡持久戰的玩家。 目錄 牌組概述 核心卡片介紹 配套訓練家卡 能量配置策略 對戰技巧 常見對手應對 替換建議 牌組概述 這套牌組以葉伊布ex為核心,搭配水屬性能量與珠貝的治癒效果,打造一套難以擊倒的生存型牌
你可能也想看
Google News 追蹤
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
Thumbnail
如何用Python為某欄做分類,例如:判斷分數是否及格 
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
Thumbnail
如何用Python為某欄做分類,例如:判斷分數是否及格