日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python使用openpyxl读写excel文件

發布時間:2025/3/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python使用openpyxl读写excel文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python使用openpyxl讀寫excel文件

  • Python使用openpyxl讀取excel文件中數據
  • Python使用openpyxl往excel文件中寫入數據

Python使用openpyxl讀取excel文件中數據

openpyxl是一個第三方庫,可以處理xlsx格式的Excel文件。
pip install openpyxl安裝,(Aanconda自帶)

讀取Excel文件
需要導入相關函數。

from openpyxl import load_workbook

默認可讀寫,若有需要可以指定write_only和read_only為True

wb = load_workbook('mainbuilding33.xlsx')

默認打開的文件為可讀寫,若有需要可以指定參數read_only為True。

獲取工作表–Sheet
獲得所有sheet的名稱

print(wb.get_sheet_names())

根據sheet名字獲得sheet

a_sheet = wb.get_sheet_by_name('Sheet1')

獲得sheet名

print(a_sheet.title)

獲得當前正在顯示的sheet, 也可以用wb.get_active_sheet()

sheet = wb.active

獲取單元格

獲取某個單元格的值,觀察excel發現也是先字母再數字的順序,即先列再行

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)
如何獲得任意區間的單元格?

可以使用range函數,下面的寫法,獲得了以A1為左上角,B3為右下角矩形區域的所有單元格。注意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

from openpyxl.utils import get_column_letter, column_index_from_string

根據列的數字返回字母
print(get_column_letter(2)) # B
根據字母返回列的數字

print(column_index_from_string('D')) # 4

Python使用openpyxl往excel文件中寫入數據

參考鏈接:https://www.cnblogs.com/276815076/p/8028127.html

總結

以上是生活随笔為你收集整理的Python使用openpyxl读写excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。