在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)