如何用Python輕松操控Excel表格
引言
在現代業務環境中,
Excel
表格是非常重要的工具,無論是數據記錄、數據分析還是報告生成,都離不開
Excel
。然而,手動操作Excel表格效率低下,容易出錯,尤其在面對大規模數據時更是如此。幸運的是,
Python
語言提供了強大的庫來輕松操控
Excel
表格,讓我們可以用高效、可靠的方式處理大量數據。
在這篇文章中,我將詳細介紹如何利用
Python
中的
openpyxl
和
pandas
庫來讀取、修改和保存
Excel
檔,並展示如何進行數據匯總、篩選和轉換,甚至生成圖表和進行宏操作。
為什麽選擇Python處理Excel表格
Python
以其簡潔的語法和強大的功能深受開發者喜愛。相比於手動操作,使用Python處理Excel表格具有以下幾個優勢:
1. 自動化操作 :能夠自動執行復雜、重復性高的任務,從而減少人為錯誤。
2. 高效處理 :能夠處理大量數據,速度遠高於手動操作。
3. 強大庫支持 :
openpyxl
和pandas
等庫提供了豐富的功能,幾乎可以完成所有你能想到的Excel操作。4. 易於維護 :程式碼易讀、易維護,可以方便地實作版本控制。
Python操作Excel的常用庫
在Python中,有多個庫可以用來處理Excel檔,但最常用的是
openpyxl
和
pandas
。這兩個庫各有特點,下面我將詳細介紹它們的使用方法。
openpyxl
openpyxl
是一個用於讀取和寫入
Excel 2010
xlsx/xlsm/xltx/xltm檔的庫。它功能強大,支持大多數Excel特性,包括公式、圖表、篩選、排序等,是處理Excel檔的理想選擇。
pandas
pandas
是一個強大的數據分析和數據處理庫,具有處理表格數據的靈活性和高效性。盡管
pandas
的主要目的是數據分析,但它也提供了豐富的Excel檔處理功能,特別適合用於數據清洗、數據轉換和數據分析。
讀取Excel檔
首先,我們需要安裝相關庫:
pip install openpyxl pandas
使用openpyxl讀取Excel檔
以下是使用
openpyxl
讀取Excel檔的範例程式碼:
import openpyxl
# 載入Excel檔
workbook = openpyxl.load_workbook('example.xlsx')
# 獲取活動工作表
sheet = workbook.active
# 讀取單元格內容
cell_value = sheet['A1'].value
print(f'A1單元格的值是:{cell_value}')
使用pandas讀取Excel檔
使用
pandas
讀取Excel檔的程式碼更為簡潔:
import pandas as pd
# 讀取Excel檔
df = pd.read_excel('example.xlsx')
# 顯示DataFrame前幾行
print(df.head())
修改Excel檔
讀取數據只是第一步,實際業務中我們經常需要修改Excel檔。以下是如何使用
openpyxl
和
pandas
修改Excel檔的範例。
使用openpyxl修改Excel檔
import openpyxl
# 載入Excel檔
workbook = openpyxl.load_workbook('example.xlsx')
# 獲取活動工作表
sheet = workbook.active
# 修改單元格內容
sheet['A1'] = '新的值'
# 保存修改後的Excel檔
workbook.save('example_modified.xlsx')
使用pandas修改Excel檔
使用
pandas
修改Excel檔時,我們通常會對整個DataFrame進行操作,然後保存修改後的檔:
import pandas as pd
# 讀取Excel檔
df = pd.read_excel('example.xlsx')
# 修改某一列的值
df['Column1'] = df['Column1'].apply(lambda x: x + 1)
# 保存修改後的Excel檔
df.to_excel('example_modified.xlsx', index=False)
數據匯總、篩選和轉換
在實際套用中,數據匯總、篩選和轉換是非常常見的操作。以下是如何使用
pandas
來實作這些操作。
數據匯總
假設我們有一個包含銷售數據的Excel檔,包含多個列:日期、銷售員、銷售額,我們需要按銷售員匯總銷售額。
import pandas as pd
# 讀取Excel檔
df = pd.read_excel('sales_data.xlsx')
# 按銷售員匯總銷售額
sales_summary = df.groupby('銷售員')['銷售額'].sum()
print(sales_summary)
數據篩選
假設我們需要篩選出銷售額大於1000的記錄:
import pandas as pd
# 讀取Excel檔
df = pd.read_excel('sales_data.xlsx')
# 篩選出銷售額大於1000的記錄
filtered_data = df[df['銷售額'] > 1000]
print(filtered_data)
數據轉換
數據轉換是指將數據從一種格式轉換為另一種格式。例如,我們需要將銷售額從人民幣轉換為美元:
import pandas as pd
# 讀取Excel檔
df = pd.read_excel('sales_data.xlsx')
# 假設1人民幣 = 0.15美元
df['銷售額(美元)'] = df['銷售額'] * 0.15
print(df)
高級功能
除了基本的讀取、修改和數據處理外,
openpyxl
和
pandas
還支持一些高級功能,如生成圖表和進行宏操作。
生成圖表
以下是使用
openpyxl
生成圖表的範例:
import openpyxl
from openpyxl.chart import LineChart, Reference
# 載入Excel檔
workbook = openpyxl.load_workbook('sales_data.xlsx')
# 獲取活動工作表
sheet = workbook.active
# 建立圖表物件
chart = LineChart()
# 添加數據到圖表
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)
chart.add_data(data, titles_from_data=True)
# 添加圖表到工作表
sheet.add_chart(chart, 'E5')
# 保存修改後的Excel檔
workbook.save('sales_data_with_chart.xlsx')
宏操作
openpyxl
不支持直接操作Excel宏,但可以讀取和修改帶有宏的檔。對於更復雜的宏操作,可以使用
pywin32
庫來呼叫Excel的COM介面。
以下是一個簡單的範例,演示如何使用
pywin32
執行Excel宏:
import win32com.client
# 開啟Excel套用
excel = win32com.client.Dispatch("Excel.Application")
# 開啟帶有宏的Excel檔
workbook = excel.Workbooks.Open(r'path\to\macro_enabled_file.xlsm')
# 執行宏
excel.Application.Run("macro_enabled_file.xlsm!宏名稱")
# 保存修改
workbook.Save()
# 關閉Excel套用
excel.Application.Quit()
結論
我們已經詳細介紹了如何使用Python的
openpyxl
和
pandas
庫來輕松操控Excel表格,從基本的讀取、修改操作,到數據匯總、篩選和轉換,再到生成圖表和宏操作。透過這些範例,你應該能夠應對大多數業務需求,提升工作效率,減少人為錯誤。
如果喜歡我的內容,不妨點贊關註,我們下次再見!
大家註意:因為微信最近又改了推播機制,經常有小夥伴說錯過了之前被刪的文章,或者一些限時福利,錯過了就是錯過了。所以建議大家加個 星標 ,就能第一時間收到推播。
點個喜歡支持我吧,點個 在看 就更好了