2025年3月6日 星期四

Python 18 小時入門--第 10 小時:Python 自動化應用(Excel & VBA)

 📌 第 10 小時:Python 自動化應用(Excel & VBA)

Python 不僅可以用來開發應用程式、數據分析,還可以用於 自動化辦公,特別是 Excel 自動化,幫助我們處理大量數據、批量轉換格式、生成報表等工作。本章將介紹:

  1. openpyxl 操作 Excel(.xlsx)
  2. pandas 處理 Excel 表格
  3. pyautogui 模擬鍵鼠自動化
  4. 使用 Python 操作 VBA 巨集(Macro)

🔹 1. openpyxl 操作 Excel(.xlsx)

openpyxl 是 Python 用來 讀取與寫入 Excel 的庫,適用於 .xlsx 格式的 Excel 檔案。

🟢 安裝 openpyxl

pip install openpyxl

🟢 讀取 Excel

import openpyxl

wb = openpyxl.load_workbook("example.xlsx")  # 開啟 Excel
sheet = wb.active  # 選擇當前工作表

print(sheet["A1"].value)  # 讀取 A1 儲存格的值
print(sheet.cell(row=2, column=1).value)  # 讀取第 2 行第 1 列的值

🔹 2. pandas 處理 Excel

如果我們需要對 Excel 進行更高效的 數據處理,可以使用 pandas

🟢 讀取 Excel

import pandas as pd

df = pd.read_excel("example.xlsx")
print(df.head())  # 顯示前 5 筆數據

🟢 轉存 Excel

df.to_excel("output.xlsx", index=False)

🔹 3. openpyxl 新增與修改 Excel

🟢 新增數據

sheet["A1"] = "姓名"
sheet["B1"] = "年齡"

sheet.append(["Alice", 25])  # 添加一行
sheet.append(["Bob", 30])

wb.save("example.xlsx")  # 存檔

🟢 調整儲存格樣式

from openpyxl.styles import Font

sheet["A1"].font = Font(bold=True, color="FF0000")  # 設定 A1 字體加粗 & 紅色
wb.save("example.xlsx")

🔹 4. pyautogui 自動化辦公

pyautogui 允許 Python 模擬鍵盤與滑鼠,可以幫助我們自動操作 Excel、打開應用程式等

🟢 安裝 pyautogui

pip install pyautogui

🟢 自動打開 Excel

import pyautogui
import time

pyautogui.press("win")  # 按下 Windows 鍵
time.sleep(1)
pyautogui.write("Excel", interval=0.1)  # 輸入 "Excel"
pyautogui.press("enter")  # 按下 Enter

📌 這段程式碼會自動開啟 Excel!

🟢 自動填寫 Excel

time.sleep(3)  # 等待 3 秒,讓使用者手動切換到 Excel

pyautogui.write("Hello, Python!", interval=0.1)  # 輸入文字
pyautogui.press("enter")  # 按 Enter

🔹 5. Python 操作 VBA 巨集

如果你的 Excel 內有 VBA 巨集(Macro),你可以用 Python 執行 VBA。

🟢 win32com 操作 VBA

pip install pywin32

🟢 執行 VBA 巨集

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(r"C:\path\to\example.xlsm")  # 開啟 Excel(.xlsm)
excel.Application.Run("MyMacro")  # 執行 VBA 巨集 "MyMacro"
wb.Close(SaveChanges=1)  # 關閉並儲存
excel.Quit()

📌 這可以讓 Python 呼叫 Excel 內建的 VBA 巨集,進行更複雜的自動化處理!


📌 第 10 小時小結

openpyxl 讀取與修改 Excel(.xlsx)
pandas 讀取、分析、轉存 Excel
pyautogui 模擬鍵鼠,開啟應用、填寫 Excel
win32com 執行 VBA 巨集,與 Excel 整合

學完這一章,你已掌握 Python 自動化辦公應用,下一步將學習 Python 進階應用,如多執行緒與網路應用!🚀

沒有留言:

張貼留言