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開始計數的