Python 自動化辦公:操作 Excel 的七個示例
在日常工作中,Excel作為數據分析和報告制作的利器,幾乎無人不知無人不曉。然而,面對大量重復的數據錄入、整理、分析任務時,手動操作不僅耗時費力,還容易出錯。此時,Python與它的強大庫openpyxl便閃亮登場,助你輕松實現Excel自動化辦公。
Python以其簡潔易學的語法和豐富的數據處理庫,能高效地處理復雜的數據任務,而openpyxl則是專門用于操作Excel文件的庫,讓你無需打開Excel,就能完成創建、讀取、編輯等操作。
openpyxl庫簡介與安裝
openpyxl是一個開源的Python庫,專注于讀寫Microsoft Excel 2010 xlsx/xlsm/xltx/xltm文件。它支持高級功能如數據驗證、圖表、超鏈接、注釋等,且性能優秀,對大型文件處理游刃有余。安裝只需在命令行中輸入以下命令:
pip install openpyxl
示例一:創建新Excel文件并寫入數據
想在Python里“無中生有”一個Excel文件?openpyxl幫你實現!下面的代碼將創建一個名為“my_data.xlsx”的文件,并在其中填入一些數據:
from openpyxl import Workbook
# 創建Workbook對象,相當于一個新的Excel文件
wb = Workbook()
# 獲取默認的活躍工作表(Sheet)
ws = wb.active
# 在A1到C3單元格寫入數據
for row in range(1, 4):
for col in 'ABC':
ws[col+str(row)] = f"Data {row} {col}"
# 保存到硬盤
wb.save("my_data.xlsx")
示例二:讀取現有Excel文件數據
有了數據,自然要能讀取。這段代碼將打開“my_data.xlsx”,讀取其內容并打印出來:
from openpyxl import load_workbook
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
# 獲取第一個工作表(索引為0)
ws = wb.worksheets[0]
# 遍歷所有單元格并打印內容
for row in ws.iter_rows():
for cell in row:
print(cell.value)
示例三:修改單元格內容及樣式
數據錯了?顏色不滿意?openpyxl讓你輕松調整:
from openpyxl.styles import Font, Color
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active
# 修改A1單元格內容為"Updated Data"
ws["A1"] = "Updated Data"
# 設置A1單元格字體為紅色,加粗
font = Font(color=Color(rgb='FF0000'), bold=True)
ws["A1"].font = font
# 保存更改
wb.save("my_data.xlsx")
示例四:添加/刪除行與列
數據結構需要調整?openpyxl讓你增刪自如:
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active
# 在第二行前插入一行
ws.insert_rows(2)
# 刪除第三列(C列)
ws.delete_cols(3)
# 保存更改
wb.save("my_data.xlsx")
示例五:合并單元格與設置條件格式
表格需要更美觀?合并單元格與條件格式來幫忙:
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active
# 合并A1到C1單元格
ws.merge_cells('A1:C1')
# 創建一個條件格式規則:當單元格值大于10時填充綠色
green_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
rule = CellIsRule(operator='>', formula=['10'], stopIfTrue=False, fill=green_fill)
# 應用規則到整個工作表
ws.conditional_formatting.add('A1:C5', rule)
# 保存更改
wb.save("my_data.xlsx")
示例六:利用公式計算與數據統計
數據需要計算或統計?openpyxl支持直接寫入公式:
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active
# 在D1單元格寫入求和公式
ws["D1"] = "=SUM(A1:C1)"
# 在D2單元格寫入平均值公式
ws["D2"] = "=AVERAGE(A2:C2)"
# 保存更改并計算公式結果
wb.save("my_data.xlsx")
示例七:批量處理多個工作表
面對多工作表的大型文件,openpyxl也能輕松應對:
# 加載已有的Excel文件
wb = load_workbook("my_data.xlsx")
# 遍歷所有工作表
for sheet in wb.worksheets:
print(f"Processing sheet: {sheet.title}")
# 對每個工作表執行相同的操作,如數據清洗、格式化等
# 保存更改
wb.save("my_data.xlsx")
結語:進階學習與應用場景推薦
恭喜你,通過以上7個示例,你已經掌握了openpyxl的基本操作。接下來,你可以嘗試結合pandas庫進行更復雜的數據分析,或者利用定時任務實現自動化報表生成。無論你是處理銷售數據、財務報表,還是科研數據,openpyxl都能成為你提升工作效率的得力助手。