詳解Python操作Excel之openpyxl

Python操作Excel之openpyxl

openpyxl是一個Python庫,用來讀寫Excel2010 xlsx/xlsm/xltx/xltm類型文件。

openpyxl不能操作早期的xls格式的Excel文件,可以使用xlwings等其他庫。

openpyxl是一個非標準的庫,需要自行安裝:pip install openpyxl

前提

既然要操作Excel,那麼前提我們對Excel要有一個基本的瞭解,比如:

一個Excel工作簿(workbook)由一個或多個工作表(sheet組成),一個工作表(sheet)中又包含多個行(row)和列(column),每一行(row)或每一列(column)又是由多個單元格(cell)組成

創建

from openpyxl import Workbook
# 創建一個工作簿對象
wb = Workbook()
# 創建一個名為first的sheet頁 [第二個參數可以指定索引,即創建sheet的位置]
ws = wb.create_sheet('first')
# 將創建的工作簿保存為Mytest.xlsx
wb.save('Eric_01.xlsx')
# 最後關閉文件
wb.close()

Workbook對象提供瞭很多屬性和方法,其中,大部分方法都與sheet有關

部分屬性如下:

  • active:獲取當前活躍的Worksheet
  • worksheets:以列表的形式返回所有的Worksheet(表格)
  • read_only:判斷是否以read_only模式打開Excel文檔
  • encoding:獲取文檔的字符集編碼
  • properties:獲取文檔的元數據,如標題,創建者,創建日期等
  • sheetnames:獲取工作簿中的表(列表)

部分方法如下:

  • get_sheet_names:獲取所有表格的名稱(新版已經不建議使用,通過Workbook的sheetnames屬性即可獲取)
  • get_sheet_by_name:通過表格名稱獲取Worksheet對象(新版也不建議使用,通過Worksheet[‘表名’]獲取)
  • get_active_sheet:獲取活躍的表格(新版建議通過active屬性獲取)
  • remove_sheet:刪除一個表格
  • create_sheet:創建一個空的表格
  • copy_worksheet:在Workbook內拷貝表格

讀取

from openpyxl import load_workbook
# openpyxl.load_workbook()打開已有工作簿
wb = load_workbook('Eric.xlsx')
# 打印工作簿中存在的工作表名稱
print(wb.sheetnames)
# 根據名稱獲取工作表
sheet = wb['sheet1']
# 如果隻有一個工作表也可以如下
sheet = wb.active
# 讀取表格內容所在范圍
sheet.dimensions
# 獲取單元格內容
# 指定坐標
cell = sheet['A1']
# 指定行列
cell = sheet.cell(row=3, column=4)
# 打印單元格的值
print(cell.value)
# 獲取單元格的行、列、坐標
print(cell.row, cell.column, cell.coordinate)
# 獲取范圍單元格的值
# 指定坐標范圍
cells = sheet['A1':'C3']
# 指定列范圍
cells = sheet['A:C'] # cells = sheet['A']
# 指定行范圍
cells = sheet[2:5] # cells = sheet[3]
# 遍歷獲取單元格的值
for cell in cells:
    print(cell.value)
# 特定范圍
for row in sheet.iter_rows(min_row = 1, max_row = 10
                          min_col = 1, max_col = 26):
    print(row)
    # 遍歷獲取單元格的值
    for cell in row:
        print(cell.value)
# 讀取所有行
for row in sheet.rows:
    print(row)

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: