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
蘇護理師在學習中
1會員
1內容數
Hi
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News