Python 高階技巧:深入解析讀取 Excel 檔案的多種方法

我点评开发者社区發表於2024-10-05

一、引言

在資料分析和處理中,經常需要從 Excel 檔案中讀取資料。Python 提供了多種庫來實現這個功能,本文將深入探討使用 ​​pandas​​、​​openpyxl​​ 和 ​​xlrd​​ 庫讀取 Excel 檔案的高階技巧和程式碼實現。

二、使用 pandas 庫讀取 Excel 檔案

​pandas​​ 是 Python 中強大的資料處理庫,提供了方便的函式來讀取 Excel 檔案。

import pandas as pd

# 讀取 Excel 檔案
df = pd.read_excel('example.xlsx')

# 列印資料框的前幾行
print(df.head())

三、使用 openpyxl 庫讀取 Excel 檔案

​openpyxl​​ 是一個用於處理 Excel 2010 xlsx/xlsm/xltx/xltm 檔案的 Python 庫。

from openpyxl import load_workbook

# 載入工作簿
wb = load_workbook('example.xlsx')

# 獲取工作表
sheet = wb.active

# 遍歷工作表中的資料
for row in sheet.iter_rows():
    for cell in row:
        print(cell.value)

四、使用 xlrd 庫讀取 Excel 檔案

​xlrd​​ 是一個用於讀取 Excel 檔案的 Python 庫,但它不支援 xlsx 檔案格式,只支援 xls 檔案格式。

import xlrd

# 開啟 Excel 檔案
workbook = xlrd.open_workbook('example.xls')

# 獲取工作表
sheet = workbook.sheet_by_index(0)

# 遍歷工作表中的資料
for row_index in range(sheet.nrows):
    row_data = sheet.row_values(row_index)
    print(row_data)

五、處理複雜的 Excel 格式

在實際應用中,Excel 檔案可能具有複雜的格式,如合併單元格、資料驗證等。我們可以使用相應的庫來處理這些情況。

# 使用 openpyxl 處理合併單元格
from openpyxl import load_workbook

wb = load_workbook('example.xlsx')
sheet = wb.active

merged_cells = sheet.merged_cells.ranges

for merged_cell in merged_cells:
    min_row, min_col, max_row, max_col = merged_cell.min_row, merged_cell.min_col, merged_cell.max_row, merged_cell.max_col
    top_left_cell_value = sheet.cell(row=min_row, column=min_col).value
    for row in range(min_row, max_row + 1):
        for col in range(min_col, max_col + 1):
            sheet.cell(row=row, column=col).value = top_left_cell_value

六、效能最佳化

當處理大型 Excel 檔案時,效能可能成為一個問題。我們可以採取一些最佳化措施,如分塊讀取、只讀取需要的列等。

# 使用 pandas 分塊讀取 Excel 檔案
import pandas as pd

chunk_size = 1000  # 每次讀取的行數

reader = pd.read_excel('large_file.xlsx', chunksize=chunk_size)

for chunk in reader:
    # 在這裡處理每一塊資料
    print(chunk)

本文部分程式碼轉自:https://www.wodianping.com/app/2024-10/40486.html

相關文章