使用openpyxl庫讀取Excel檔案資料

2023-11-05 18:01:08

在Python中,我們經常需要讀取和處理Excel檔案中的資料。openpyxl是一個功能強大的庫,可以輕鬆地實現Excel檔案的讀寫操作。本文將介紹如何使用openpyxl庫讀取Excel檔案中的資料。

1. 匯入所需庫

首先,我們需要匯入openpyxl庫,這個庫提供了許多用於操作Excel檔案的功能。

from openpyxl import load_workbook

2. 載入工作簿

接下來,我們需要載入Excel檔案的工作簿。

workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建資料夾\新建 XLSX 工作表.xlsx')

請注意,filename引數需要指定Excel檔案的路徑。

3. 獲取指定工作表

在Excel檔案中,可能包含多個工作表。我們需要指定要獲取資料的工作表名稱。

sheet_name = "Sheet1"
sheet = workbook[sheet_name]

根據指定的工作表名稱,我們可以獲取到對應的工作表物件。

4. 遍歷行和列

接下來,我們可以使用不同的方法遍歷工作表中的行和列,並獲取每個單元格的值。

4.1 遍歷行

我們可以使用iter_rows()方法來獲取指定範圍內的一系列行,並遍歷每行中的每個單元格。

for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in row:
        print(cell.value)

4.2 遍歷列

同樣地,我們可以使用iter_cols()方法獲取指定範圍內的一系列列,並遍歷每列中的每個單元格。

for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in col:
        print(cell.value)

4.3 遍歷所有行和列

除了使用上述方法來遍歷特定範圍內的行和列,我們還可以直接獲取工作表中的所有行和列,並遍歷每個單元格。

# 遍歷所有行
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 遍歷所有列
for col in sheet.columns:
    for cell in col:
        print(cell.value)

4.4 獲取所有單元格的值

如果我們只關注單元格中的值,並跳過格式資訊,可以使用iter_rows()iter_cols()方法的values_only=True引數來實現。

# 獲取所有行的值
for row in sheet.iter_rows(values_only=True):
    for cell_value in row:
        print(cell_value)

# 獲取所有列的值
for col in sheet.iter_cols(values_only=True):
    for cell_value in col:
        print(cell_value)

4.5 獲取指定範圍的單元格區域

如果我們只需要獲取特定範圍內的單元格區域,可以使用切片來實現。

# 獲取指定範圍內的單元格區域
for row in sheet['A1:E8']:
    for cell in row:
        print(cell.value)

總結

本文介紹瞭如何使用openpyxl庫讀取Excel檔案中的資料。通過載入工作簿、獲取指定工作表以及遍歷行和列,我們可以輕鬆地讀取Excel檔案中的資料並進行處理

完整程式碼:

from openpyxl import load_workbook

# 載入工作簿
workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建資料夾\新建 XLSX 工作表.xlsx')

# 指定要獲取資料的工作表名稱
sheet_name = "Sheet1"

# 獲取指定名稱的工作表
sheet = workbook[sheet_name]

# 使用 iter_rows() 方法獲取指定範圍內的一系列行,並遍歷每行中的每個單元格
for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in row:
        print(cell.value)

# 使用 iter_cols() 方法獲取指定範圍內的一系列列,並遍歷每列中的每個單元格
for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in col:
        print(cell.value)

# rows 屬性返回工作表中所有行的列表
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# columns 屬性返回工作表中所有列的列表
for col in sheet.columns:
    for cell in col:
        print(cell.value)

# 使用 iter_rows() 方法獲取工作表中的所有行並返回每個單元格的值,values_only=True 引數可以跳過單元格的格式資訊
for row in sheet.iter_rows(values_only=True):
    for cell_value in row:
        print(cell_value)

# 使用 iter_cols() 方法獲取工作表中的所有列並返回每個單元格的值,values_only=True 引數可以跳過單元格的格式資訊
for col in sheet.iter_cols(values_only=True):
    for cell_value in col:
        print(cell_value)

# 使用切片來獲取指定範圍內的單元格區域,並使用巢狀迴圈來遍歷該區域內的每個單元格
for row in sheet['A1:E8']:
    for cell in row:
        print(cell.value)