Python利用xlrd?與?xlwt?模塊操作?Excel
Python 操作 Excel
本篇博客介紹一種 Python 操作 Excel 的辦法,核心用到 xlrd與xlwt模塊。
xlrd
用于讀 excel;xlwt
用于寫 excel。
模塊安裝比較簡單:
pip install xlrd,xlwt
正式開始前還需要了解一下 Excle 中的三大對(duì)象:
WorkBook
:工作簿對(duì)象Sheet
:表對(duì)象Cell
:單元格對(duì)象
這里 WorlBook
表示的是整個(gè) Excel 文件, Sheet
表示的是 Excel 中的 Sheet, Cell
就是每個(gè)單元格。
常用單元格( Cell
)中的數(shù)據(jù)類型
- empty(空的)
- string(text)
- number
- date
- boolean
- error
- blank(空白表格)
打開Excel文件讀取數(shù)據(jù)
提前準(zhǔn)備一個(gè) Excel 表格,用作測(cè)試使用:
直接看代碼即可:
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 print(data) # 輸出 # <xlrd.book.Book object at 0x00000272DE9276A0>
注意最新版的 xlrd
模塊已經(jīng)不支持 xlsx
文件了,如果希望支持該文件格式,請(qǐng)使用如下版本 xlrd
。
pip uninstall xlrd # 卸載當(dāng)前版本 pip install xlrd==1.2.0 # 安裝1.2.0版本
獲取 Excel 中的Sheet:
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 table = data.sheets()[0] # 通過索引順序獲取 print(table) table = data.sheet_by_index(1) # 通過索引順序獲取 sheet_name = '測(cè)試1' table = data.sheet_by_name(sheet_name) # 通過 Sheet 名稱獲取 print(table)
以上方法返回的是 xlrd.sheet.Sheet()
對(duì)象。 如果不存在 Sheet
,或者名稱寫錯(cuò),則出現(xiàn)如下 BUG
xlrd.biffh.XLRDError: No sheet named <'測(cè)試1'>
調(diào)用工作簿對(duì)象的 sheet_names()
方法,可以返回工作簿的所有sheet頁名字。
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet_names = data.sheet_names() print(sheet_names)
使用該方法優(yōu)先獲取所有的 sheet_name
,可以防止調(diào)非法名稱。
行的操作
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 table = data.sheet_by_index(0) nrows = table.nrows # 獲取該sheet中的有效行數(shù) print(nrows)
獲取第一行內(nèi)容:
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet = data.sheet_by_index(0) nrows = sheet.nrows # 獲取該sheet中的有效行數(shù) row_data = sheet.row_values(0) # 獲取第1行的內(nèi)容 print(row_data)
獲取所有行數(shù)據(jù)
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet = data.sheet_by_index(0) nrows = sheet.nrows # 獲取該sheet中的有效行數(shù) for i in range(nrows): print(sheet.row_values(i)) # 獲取第幾行的數(shù)據(jù)
返回由該列中所有的單元格對(duì)象組成的列表:
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet = data.sheet_by_index(0) print(sheet.row_slice(0)) # 輸出 # [text:'姓名', text:'班級(jí)', text:'年齡']
其余內(nèi)容參考代碼查看即可:
# 返回由該行中所有單元格的數(shù)據(jù)類型組成的列表 sheet .row_types(行索引, start_colx=0, end_colx=None) # 返回由該行中所有單元格的數(shù)據(jù)組成的列表 sheet .row_values(行索引, start_colx=0, end_colx=None) # 返回該列的有效單元格長度 sheet .row_len(行索引)
列的操作
獲取有效列數(shù):
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet = data.sheet_by_index(0) ncols = sheet.ncols #獲取列表的有效列數(shù) print(ncols)
單元格操作
獲取單元格內(nèi)容 cell(rowx, colx)
:獲取sheet對(duì)象中第rowx行,第colx列的單元對(duì)象, 返回值的格式為 單元類型:單元值
。
import xlrd data = xlrd.open_workbook('測(cè)試表格.xlsx') # filename 表示文件名以及路徑 sheet = data.sheet_by_index(0) data = sheet.cell(2, 1) print(data)
獲取單元格的值:
data = sheet.cell_value(2, 1) print(data)
xlwt模塊(操作 .xls
文件進(jìn)行寫操作) 使用說明在注釋直接查看即可。
import xlwt xl = xlwt.Workbook(encoding='utf-8') # 創(chuàng)建1個(gè)sheet對(duì)象,第2個(gè)參數(shù)是指單元格是否允許重設(shè)置,默認(rèn)為False sheet = xl.add_sheet('測(cè)試', cell_overwrite_ok=True) # 第1個(gè)參數(shù)代表行,第2個(gè)參數(shù)是列,第3個(gè)參數(shù)是內(nèi)容,第4個(gè)參數(shù)是格式 sheet.write(0, 0, '姓名') sheet.write(0, 1, '年紀(jì)') xl.save('橡皮擦的測(cè)試.xls')
設(shè)置單元格樣式的基本用法:
import xlwt xl = xlwt.Workbook(encoding='utf-8') # 創(chuàng)建1個(gè)sheet對(duì)象,第2個(gè)參數(shù)是指單元格是否允許重設(shè)置,默認(rèn)為False sheet = xl.add_sheet('測(cè)試', cell_overwrite_ok=False) # 初始化樣式 style = xlwt.XFStyle() # 為樣式創(chuàng)建字體 font = xlwt.Font() font.name = 'Arial Black' style.font = font # 第1個(gè)參數(shù)代表行,第2個(gè)參數(shù)是列,第3個(gè)參數(shù)是內(nèi)容,第4個(gè)參數(shù)是格式 sheet.write(0, 0, '姓名') sheet.write(0, 1, '年紀(jì)', style) xl.save('橡皮擦的測(cè)試.xls')
合并單元格:
# 合并 第1行到第2行 的 第1列到第2列 sheet.write_merge(1, 2, 1, 2, '合并單元格')
到此這篇關(guān)于Python利用xlrd 與 xlwt 模塊操作 Excel 的文章就介紹到這了,更多相關(guān)Python操作 Excel 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyCharm 安裝與使用配置教程(windows,mac通用)
很多小伙伴下載安裝PyCharm后不會(huì)使用,這篇文章詳細(xì)介紹了PyCharm安裝與使用教程(windows,mac通用),需要的朋友可以參考下2021-05-05Python編程快速上手——正則表達(dá)式查找功能案例分析
這篇文章主要介紹了Python正則表達(dá)式查找功能,結(jié)合具體實(shí)例形式分析了Python基于正則表達(dá)式遍歷查找指定格式文件的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作
Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03深入理解python中實(shí)例方法的第一個(gè)參數(shù)self
在Python中,self?是類的實(shí)例方法的一個(gè)參數(shù),代表類的實(shí)例對(duì)象本身,在本篇文章中,我們將深入探討?self?的工作原理以及它在Python編程中的重要性,需要的可以參考下2023-09-09Python Pygame實(shí)現(xiàn)落球游戲詳解
本文主要介紹了利用Pygame實(shí)現(xiàn)落球小游戲,即屏幕上落下一個(gè)球,通過鼠標(biāo)移動(dòng),地下的木塊如果接上則加分,否則就減去一命,三條命用完則游戲結(jié)束。感興趣的可以學(xué)習(xí)2022-01-01python3 動(dòng)態(tài)模塊導(dǎo)入與全局變量使用實(shí)例
今天小編就為大家分享一篇python3 動(dòng)態(tài)模塊導(dǎo)入與全局變量使用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12教你用 Python 實(shí)現(xiàn)微信跳一跳(Mac+iOS版)
這幾天看網(wǎng)上好多微信跳一跳破解了,不過都是安卓的,無奈蘋果不是開源也沒辦法。本文給大家分享用 Python 來玩微信跳一跳(Mac+iOS版),具體實(shí)現(xiàn)代碼大家參考下本文2018-01-01