詳解Python操作Excel之openpyxl
Python操作Excel之openpyxl
openpyxl是一個Python庫,用來讀寫Excel2010 xlsx/xlsm/xltx/xltm類型文件。
openpyxl不能操作早期的xls格式的Excel文件,可以使用xlwings等其他庫。
openpyxl是一個非標(biāo)準(zhǔn)的庫,需要自行安裝:
pip install openpyxl
前提
既然要操作Excel,那么前提我們對Excel要有一個基本的了解,比如:
一個Excel工作簿(workbook)由一個或多個工作表(sheet組成),一個工作表(sheet)中又包含多個行(row)和列(column),每一行(row)或每一列(column)又是由多個單元格(cell)組成
創(chuàng)建
from openpyxl import Workbook
# 創(chuàng)建一個工作簿對象
wb = Workbook()
# 創(chuàng)建一個名為first的sheet頁 [第二個參數(shù)可以指定索引,即創(chuàng)建sheet的位置]
ws = wb.create_sheet('first')
# 將創(chuàng)建的工作簿保存為Mytest.xlsx
wb.save('Eric_01.xlsx')
# 最后關(guān)閉文件
wb.close()
Workbook對象提供了很多屬性和方法,其中,大部分方法都與sheet有關(guān)
部分屬性如下:
active:獲取當(dāng)前活躍的Worksheetworksheets:以列表的形式返回所有的Worksheet(表格)read_only:判斷是否以read_only模式打開Excel文檔encoding:獲取文檔的字符集編碼properties:獲取文檔的元數(shù)據(jù),如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等sheetnames:獲取工作簿中的表(列表)
部分方法如下:
get_sheet_names:獲取所有表格的名稱(新版已經(jīng)不建議使用,通過Workbook的sheetnames屬性即可獲取)get_sheet_by_name:通過表格名稱獲取Worksheet對象(新版也不建議使用,通過Worksheet[‘表名’]獲取)get_active_sheet:獲取活躍的表格(新版建議通過active屬性獲取)remove_sheet:刪除一個表格create_sheet:創(chuàng)建一個空的表格copy_worksheet:在Workbook內(nèi)拷貝表格
讀取
from openpyxl import load_workbook
# openpyxl.load_workbook()打開已有工作簿
wb = load_workbook('Eric.xlsx')
# 打印工作簿中存在的工作表名稱
print(wb.sheetnames)
# 根據(jù)名稱獲取工作表
sheet = wb['sheet1']
# 如果只有一個工作表也可以如下
sheet = wb.active
# 讀取表格內(nèi)容所在范圍
sheet.dimensions
# 獲取單元格內(nèi)容
# 指定坐標(biāo)
cell = sheet['A1']
# 指定行列
cell = sheet.cell(row=3, column=4)
# 打印單元格的值
print(cell.value)
# 獲取單元格的行、列、坐標(biāo)
print(cell.row, cell.column, cell.coordinate)
# 獲取范圍單元格的值
# 指定坐標(biāo)范圍
cells = sheet['A1':'C3']
# 指定列范圍
cells = sheet['A:C'] # cells = sheet['A']
# 指定行范圍
cells = sheet[2:5] # cells = sheet[3]
# 遍歷獲取單元格的值
for cell in cells:
print(cell.value)
# 特定范圍
for row in sheet.iter_rows(min_row = 1, max_row = 10
min_col = 1, max_col = 26):
print(row)
# 遍歷獲取單元格的值
for cell in row:
print(cell.value)
# 讀取所有行
for row in sheet.rows:
print(row)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
pycharm遠(yuǎn)程開發(fā)項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了pycharm遠(yuǎn)程開發(fā)項(xiàng)目的實(shí)現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
python中sort和sorted排序的實(shí)例方法
在本篇文章中小編給大家?guī)淼氖顷P(guān)于python中sort和sorted排序的實(shí)例方法以及相關(guān)知識點(diǎn),有需要的朋友們可以學(xué)習(xí)下。2019-08-08
python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法
這篇文章主要介紹了python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法,涉及Python針對文件操作與編碼轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-08-08
Python和Java進(jìn)行DES加密和解密的實(shí)例
下面小編就為大家分享一篇Python和Java進(jìn)行DES加密和解密的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后自動重新運(yùn)行進(jìn)程的示例
要實(shí)現(xiàn)Python程序在被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后能夠自動重新運(yùn)行,我們可以采用幾種方法,但最直接且常用的方法之一是結(jié)合操作系統(tǒng)級的工具或腳本,這篇文章主要介紹了Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后怎么自動重新運(yùn)行進(jìn)程,需要的朋友可以參考下2024-08-08

