Excel是我們?nèi)粘9ぷ髦薪?jīng)常用到的辦公軟件,在處理數(shù)據(jù)和表格方面有著優(yōu)異的性能,那么能不能用python來操作Excel呢?答案是肯定的,openpyxl是一個第三方庫,可以處理xlsx格式的Excel文件。
pipinstallopenpyxl安裝。
讀取Excel文件
需要導入相關(guān)函數(shù)
fromopenpyxlimportload_workbook
#默認可讀寫,若有需要可以指定write_only和read_only為True
wb=load_workbook('pythontab.xlsx')
默認打開的文件為可讀寫,若有需要可以指定參數(shù)read_only為True。
獲取工作表--Sheet
#獲得所有sheet的名稱
print(wb.get_sheet_names())
#根據(jù)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)也是先字母再數(shù)字的順序,即先列再行
b4=sheet['B4']
#分別返回
print(f'({b4.column},{b4.row})is{b4.value}')#返回的數(shù)字就是int型
#除了用下標的方式獲得,還可以用cell函數(shù),換成數(shù)字,這個表示B2
b4_too=sheet.cell(row=4,column=2)
print(b4_too.value)
b4.column返回B,b4.row返回4,value則是那個單元格的值。另外cell還有一個屬性coordinate,像b4這個單元格返回的是坐標B4。
獲得行和列
獲取行和列
sheet.rows為生成器,里面是每一行的數(shù)據(jù),每一行又由一個tuple包裹。
sheet.columns類似,不過里面是每個tuple是每一列的單元格。
#因為按行,所以返回A1,B1,C1這樣的順序
forrowinsheet.rows:
forcellinrow:
print(cell.value)
#A1,A2,A3這樣的順序
forcolumninsheet.columns:
forcellincolumn:
print(cell.value)
上面的代碼就可以獲得所有單元格的數(shù)據(jù)。如果要獲得某行的數(shù)據(jù)呢?給其一個索引就行了,因為sheet.rows是生成器類型,不能使用索引,轉(zhuǎn)換成list之后再使用索引,list(sheet.rows)[2]這樣就獲取到第二行的tuple對象。
forcellinlist(sheet.rows)[2]:
print(cell.value)
以上內(nèi)容為大家介紹了python培訓之如何處理excel,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。