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...