當前位置: 妍妍網 > 碼農

如何用Python輕松操控Excel表格

2024-06-27碼農

如何用Python輕松操控Excel表格

引言

在現代業務環境中, Excel 表格是非常重要的工具,無論是數據記錄、數據分析還是報告生成,都離不開 Excel 。然而,手動操作Excel表格效率低下,容易出錯,尤其在面對大規模數據時更是如此。幸運的是, Python 語言提供了強大的庫來輕松操控 Excel 表格,讓我們可以用高效、可靠的方式處理大量數據。

在這篇文章中,我將詳細介紹如何利用 Python 中的 openpyxl pandas 庫來讀取、修改和保存 Excel 檔,並展示如何進行數據匯總、篩選和轉換,甚至生成圖表和進行宏操作。

為什麽選擇Python處理Excel表格

Python 以其簡潔的語法和強大的功能深受開發者喜愛。相比於手動操作,使用Python處理Excel表格具有以下幾個優勢:

  1. 1. 自動化操作 :能夠自動執行復雜、重復性高的任務,從而減少人為錯誤。

  2. 2. 高效處理 :能夠處理大量數據,速度遠高於手動操作。

  3. 3. 強大庫支持 openpyxl pandas 等庫提供了豐富的功能,幾乎可以完成所有你能想到的Excel操作。

  4. 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'].valueprint(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.15print(df)

高級功能

除了基本的讀取、修改和數據處理外, openpyxl pandas 還支持一些高級功能,如生成圖表和進行宏操作。

生成圖表

以下是使用 openpyxl 生成圖表的範例:

import openpyxlfrom 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表格,從基本的讀取、修改操作,到數據匯總、篩選和轉換,再到生成圖表和宏操作。透過這些範例,你應該能夠應對大多數業務需求,提升工作效率,減少人為錯誤。

如果喜歡我的內容,不妨點贊關註,我們下次再見!

大家註意:因為微信最近又改了推播機制,經常有小夥伴說錯過了之前被刪的文章,或者一些限時福利,錯過了就是錯過了。所以建議大家加個 星標 ,就能第一時間收到推播。

點個喜歡支持我吧,點個 在看 就更好了