25.xlrd、xlwt和openpyxl模塊的比較和使用


xlrd、xlwt和openpyxl模塊的比較:
1)xlrd:對xls、xlsx、xlsm文件進行讀操作–讀操作效率較高,推薦
2)xlwt:對xls文件進行寫操作–寫操作效率較高,但是不能執行xlsx文件
3)openpyxl:對xlsx、xlsm文件進行讀、寫操作–xlsx寫操作推薦使用

 

一、xlrd:對xls、xlsx文件進行讀操作
1.獲取工作簿對象:xlrd.open_workbook()
workBook = xlrd.open_workbook(filemname):打開Excel文件讀取數據
注:filemname為文件名以及路徑,如果路徑或者文件名有中文給前面加一個r表示原生字符。

import xlrd
filename=r'D:\360極速瀏覽器下載\文件閱讀記錄表.xls'
workBook=xlrd.open_workbook(filename)

2.獲取工作表(sheet)對象
1)workBook.sheet_names():獲取所有sheet頁的名字,返回一個列表
2)sheetName = workBook.sheet_by_name(‘sheet1’):根據sheet頁的名字獲取指定表名的表,返回的是一個對象
3)sheetName = workbook.sheet_by_index(0):根據sheet索引獲取對應sheet表(索引是從0開始的),返回的是一個對象

3.獲取sheet的名稱:name
sheetName.name:獲取sheet的名稱

4.獲取行數和列數:nrows、ncols
sheetName.nrows:獲取表格的總行數
sheetName.ncols:獲取表格的總列數

5.獲取整行或整列的值(數組):row_values、col_values
rows = sheetName.row_values(0)  # 獲取第一行內容,返回一個列表
cols = sheetName.col_values(0)  # 獲取第一列內容,返回一個列表

6.獲取指定單元格的值:cell(a,b).value、row(1)[0].value
sheetName.cell(1,0).value:獲取第2行第一列的單元格數據
sheetName.row(1)[0].value:獲取第2行第一列的單元格數據

7.獲取單元格內容的數據類型:ctype
sheetName.cell(1,0).ctype
注:返回為代表數據類型的值,編碼分別代表:ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

二、xlwt:對xls文件進行寫操作
1.新建工作簿:xlwt.Workbook()
workBook = xlwt.Workbook() :新建工作簿

2.在工作簿中新建sheet頁:add_sheet()
table = workBook .add_sheet(‘Over’,cell_overwrite_ok=True) # 如果對同一單元格重復操作會發生overwrite Exception,cell_overwrite_ok為可覆蓋
sheet = workBook .add_sheet(sheet_name):新增sheet表

import xlwt
wb=xlwt.Workbook(encoding='utf-8')  # 創建一個工作薄
sheet=wb.add_sheet('文件閱讀記錄信息表') # 創建一個工作表

3.向表格中寫入數據:write(i,j,value)
sheet.write(i,j,value) :向單元格(i,j)寫入數據value

4.保存工作簿:save()
workBook.save(path)


三、openpyxl:對xlsx文件進行寫操作
1.新建工作簿:openpyxl.Workbook()
workBook = openpyxl.Workbook() :新建工作簿

2.在工作簿中新建sheet頁:create_sheet()
sheet = workBook .create_sheet(sheet_name):新增sheet表:sheet_name

3.向表格中寫入數據:cell(i,j,value) --索引從1計數
sheet= workBook .active :獲得當前活躍的工作頁,默認為第一個工作頁
sheet.cell(i,j,value) :向單元格(i,j)第i行第j列寫入數據value
注意:行號和列號都從1開始計數,即(1,1)為第一行第一列

4.保存工作簿:save()
workBook .save(path)

四、openpyxl:對xlsx文件進行讀操作
1.獲取工作簿對象:openpyxl.load_workbook()
workBook = openpyxl.load_workbook(filemname):讀取xlsx文件
注:filemname為文件名以及路徑,如果路徑或者文件名有中文給前面加一個r表示原生字符。

2.獲取工作表(sheet)對象
1)workBook.get_sheet_names():獲取所有sheet頁的名字(所有工作表名)
2)sheetName = workBook.get_sheet_by_name(‘sheet1’):根據sheet頁的名字獲取指定表名的表
3)sheetName = workBook.worksheets[0]:根據sheet索引獲取對應sheet表

3.獲取sheet的名稱:title
sheetName.title:獲取sheet的名稱

4.獲取行數和列數:max_row、max_column
sheetName.max_row:獲取表格的總行數
sheetName.max_column:獲取表格的總列數

5.獲取整行或整列的值(數組):rows[i]、columns[i]
rows = sheetName.rows:獲取每一行內容,這是一個生成器,里面是每一行數據,每一行數據由一個元組類型包裹
cols = sheetName.columns :獲取每一列內容,同上
sheetName.rows[0]:獲取第一行內容–索引從0計數
sheetName.columns[0]:獲取第一列內容–索引從0計數

6.獲取指定單元格的值:cell(a,b).value–索引從1計數
sheetName[‘A1’].value:獲取第1行第一(A)列的單元格數據
sheetName.cell(1,1).value:獲取第1行第一列的單元格數據
注:此處的行數和列數都是從1開始計數的,而在xlrd中是由0開始計數的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM