Python使用openpyxl读写excel文件
Python使用openpyxl讀寫excel文件
- Python使用openpyxl讀取excel文件中數據
- Python使用openpyxl往excel文件中寫入數據
Python使用openpyxl讀取excel文件中數據
openpyxl是一個第三方庫,可以處理xlsx格式的Excel文件。
pip install openpyxl安裝,(Aanconda自帶)
讀取Excel文件
需要導入相關函數。
默認可讀寫,若有需要可以指定write_only和read_only為True
wb = load_workbook('mainbuilding33.xlsx')默認打開的文件為可讀寫,若有需要可以指定參數read_only為True。
獲取工作表–Sheet
獲得所有sheet的名稱
根據sheet名字獲得sheet
a_sheet = wb.get_sheet_by_name('Sheet1')獲得sheet名
print(a_sheet.title)獲得當前正在顯示的sheet, 也可以用wb.get_active_sheet()
sheet = wb.active獲取單元格
獲取某個單元格的值,觀察excel發(fā)現(xiàn)也是先字母再數字的順序,即先列再行
b4 = sheet['B4']分別返回
print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的數字就是int型除了用下標的方式獲得,還可以用cell函數, 換成數字,這個表示B4
b4_too = sheet.cell(row=4, column=2) print(b4_too.value)b4.column返回B, b4.row返回4, value則是那個單元格的值。另外cell還有一個屬性coordinate, 像b4這個單元格返回的是坐標B4。
獲得最大列和最大行
print(sheet.max_row) print(sheet.max_column)獲取行和列
sheet.rows為生成器, 里面是每一行的數據,每一行又由一個tuple包裹。
sheet.columns類似,不過里面是每個tuple是每一列的單元格。
因為按行,所以返回A1, B1, C1這樣的順序
for row in sheet.rows:
for cell in row:
print(cell.value)
A1, A2, A3這樣的順序
for column in sheet.columns:
for cell in column:
print(cell.value)
上面的代碼就可以獲得所有單元格的數據。如果要獲得某行的數據呢?給其一個索引就行了,因為sheet.rows是生成器類型,不能使用索引,轉換成list之后再使用索引,list(sheet.rows)[2]這樣就獲取到第三行的tuple對象。
for cell in list(sheet.rows)[2]:
print(cell.value)
如何獲得任意區(qū)間的單元格?
可以使用range函數,下面的寫法,獲得了以A1為左上角,B3為右下角矩形區(qū)域的所有單元格。注意range從1開始的,因為在openpyxl中為了和Excel中的表達方式一致,并不和編程語言的習慣以0表示第一個值。
for i in range(1, 4): for j in range(1, 3): print(sheet.cell(row=i, column=j)) # out <Cell mainbuilding33.A1> <Cell mainbuilding33.B1> <Cell mainbuilding33.A2> <Cell mainbuilding33.B2> <Cell mainbuilding33.A3> <Cell mainbuilding33.B3>還可以像使用切片那樣使用。sheet[‘A1’:‘B3’]返回一個tuple,該元組內部還是元組,由每行的單元格構成一個元組。
for row_cell in sheet['A1':'B3']: for cell in row_cell: print(cell) for cell in sheet['A1':'B3']: print(cell) # out (<Cell mainbuilding33.A1>, <Cell mainbuilding33.B1>) (<Cell mainbuilding33.A2>, <Cell mainbuilding33.B2>) (<Cell mainbuilding33.A3>, <Cell mainbuilding33.B3>)根據字母獲得列號,根據列號返回字母
需要導入, 這兩個函數存在于openpyxl.utils
根據列的數字返回字母
print(get_column_letter(2)) # B
根據字母返回列的數字
Python使用openpyxl往excel文件中寫入數據
參考鏈接:https://www.cnblogs.com/276815076/p/8028127.html
總結
以上是生活随笔為你收集整理的Python使用openpyxl读写excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python Study:(三)pyth
- 下一篇: Tkinter Learning:tki