python excel
1、获取excel中所有sheet的名称
1 import xlrd 2 from xlutils.copy import copy 3 4 def getSheetNames(filename): 5 #打开excel 6 workbook = xlrd.open_workbook(filename) 7 nameList = workbook.sheet_names() 8 return (nameList)
2、获取excel某一个sheet的总行数
1 def getrows(filename, sheetname): 2 #打开excel 3 workbook = xlrd.open_workbook(filename) 4 #根据名字获取指定sheet页 5 sheet=workbook.sheet_by_name(sheetname) 6 #获取sheet页的行数和列数 7 rows = sheet.nrows 8 #print(sheet.ncols)#列数 9 return (rows)
3、向已存在的excel写入(或修改)
'''******************************************************** Func Name: writeResToExcel Para: filename : excel路径 sheetname : sheet名称 row : 行 col : 列 value : 值 Desc: 向已存在的excel写入(或修改)某行某列的值 Date: 20190711 Auth: yanerfree ********************************************************''' def writeResToExcel(filename, sheetname, row, col, value): #xlutils:修改excel #打开excel workbook1 = xlrd.open_workbook(filename) workbook2 = copy(workbook1)#拷贝一份原来的excel # print(dir(workbook2)) #根据名字获取指定sheet页 sheet=workbook2.get_sheet(sheetname) sheet.write(row, col, value) workbook2.save(filename) #sheet = book2.get_sheet(0)#获取第几个sheet页,book2现在的是xlutils里的方法,不是xlrd的 print("***** 结果写入excel成功 *****")
xlrd 与 copy的excel操作有点区别:
1)获取sheet方法:
xlrd打开的文件:
sheet= workbook1.sheets()[0] #通过索引顺序获取
sheet= workbook1.sheet_by_index(0) #通过索引顺序获取
sheet= workbook1.sheet_by_name(u'Sheet1')#通过名称获取
copy后的文件:
workbook2 = copy(workbook1)#拷贝一份原来的excel
sheet=workbook2.get_sheet('Sheet1')#根据名字获取指定sheet页
sheet=workbook2.get_sheet(0)#通过索引顺序获取
2)获取sheet的行数
xlrd打开的文件:
rows = sheet.nrows
cols = sheet.ncols
copy后的文件不能这样获取
注意:xlrd模块0.8版本后不支持以xlsx为后缀名文件,所以使用这个方法的时候,excel要用xls格式的,不然会导致保存的文件无法打开