openpyxl 學習筆記

2021-09-25 15:23:33 字數 3270 閱讀 2503

python版本

筆記最後更新時間

3.7.0

2020.2.29

**示例 測試.xlsx sheet1\a

bcde

1測試a123

4567

8import openpyxl

將xlsx檔案開啟,並將該檔案物件賦予wb變數

例項:

wb = openpyxl.load_workbook("測試.xlsx")

print(wb)

輸出:

此時,wb是乙個openpyxl.workbook物件。

也可以用

wb=openpyxl.load_workbook("測試.xlsx",read_only=true)
採用唯讀形式開啟xlsx檔案。

如果在開啟xlsx檔案時不希望單元格的公式被讀取出來,就要

wb=openpyxl.load_workbook("測試.xlsx",data_only=true)
此時,單元格的公式將不會被讀取,只讀取公式計算後的值。

wb.sheetnames返回工作薄物件中所有工作表的名稱(:rtype  list)

例項:

wb_sheetnames = wb.sheetnames

print(wb_sheetnames)

輸出:

['sheet1', 'sheet2', 'sheet3']
或者

for sheet in wb:   

print(sheet.title)

輸出:

sheet1

sheet2

sheet3

通過sheet頁的名稱,獲取wb工作薄物件裡的乙個工作表物件

例項:

ws= wb['sheet1']

print(ws)

輸出:

也可以通過wb.sheetnames獲取所有sheet的名稱,返回sheet名稱的list後,通過索引獲取指定工作表名稱,從而獲取worksheet物件

例項:

ws = wb[wb.sheetnames[0]]  

print(ws)

輸出:

建立和刪除sheet頁

例項:建立名稱為first sheet的sheet頁,index=0 代表放在第1個位置,如果不加index引數,預設加在最後

wb.create_sheet(index=0,title='first sheet')

print(wb.sheetnames)

輸出:

['first sheet', 'sheet1', 'sheet2', 'sheet3']
刪除名稱為first sheet的sheet頁

wb.remove_sheet(wb['first sheet'])

print(wb.sheetnames)

輸出:

['sheet1', 'sheet2', 'sheet3']
獲取ws工作表物件中的單個單元格物件

例項:

cell = ws['a1']

print(cell)

輸出:

此時,cell變數是乙個ws工作表物件中的a1單元格物件

也可以用另外一種方式來獲取單個單元格物件

例項:

cell = ws.cell(row=1,column=1)

print(cell)

輸出:

對於乙個單元格物件cell,可以通過cell.value獲取或者修改該單元格裡的數值

例項:

cell = ws['a1']

print(cell.value)

輸出:

測試a1
該內容即為a1單元格裡的數值

可以通過賦值的形式來修改資料

例項:

cell = ws['a1']

print(cell.value)

cell.value = "測試修改"

print(cell.value)

輸出:

測試a1

測試修改

此時 a1單元格的值已經從  測試a1   修改為   

測試修改

獲取單行,單列

例項:

colc = ws['c']

row4 = ws[4]

print(colc)

print(row4)

輸出:

(, , , , , , , )

(, , , , )

返回乙個整行或者整列所有單元格物件組成的元組

獲取多行,多列

例項:

col_range = ws['b:c'] 

row_range = ws[2:3]

print(col_range)

print(row_range)

輸出:

((, , , , , , , ), (, , , , , , , ))

((, , , , ), (, , , , ))

可以看出,col_range和 row_range都是二維元組,col_range每個元素是一列單元格的元組,row_range每個元素是一行單元格的元組

獲取乙個區域

例項:

cell_range = ws["b2:d4"]

print(cell_range)

輸出:

((, , ), (, , ), (, , ))
可以看出,cell_range是乙個二維元組,

cell_range每個元素是一行單元格的元組

安裝與使用openpyxl

安裝 使用pip install openpyxl 即可。如果出現ssl錯誤,可以使用國內的映象 pip install i openpyxl 如果還是出現錯誤,就重複幾次。使用使用非常簡單。第一步是開啟檔案 第二步是選定sheet 第三步是讀取對於單元格的內容。要注意的是openpyxl是從1開始...

Python使用openpyxl讀取Excel資訊

python的用途越來越廣,不能不開始學習使用了,今天寫個練手的demo,最大的感覺是python和es6挺像的。主要功能是彈出對話方塊,選擇本地excel檔案,然後迴圈讀取出來。使用的是openpyxl模組,只支援xlsx,不支援xls。如下 import openpyxl import tkin...

openpyxl模組中的迴圈

讓繁瑣的工作自動化 中有關openpyxl模組中的迴圈有些不同 書中原話為 for rowofcellobjects in sheet a1 c3 for cellobj in rowofcellobjects print cellobj.coordinate,cellobj.value print...