一、读excel: xlrd-----只能读、不能写
import xlrd book=xlrd.open_workbook(r'E:BestTest内容名单.xlsx') #打开excel sheet=book.sheet_by_index(0) #通过索引定位是第一个sheet页 sheet2=book.sheet_by_name("作业") #通过名字定位sheet sheet.row_values(0) #获取某一行的数据,索引从0开始,0代表第一行 sheet.col_values(1) #获取某一列的数据,索引从0开始 sheet.cell(0,1).value #获取某个单元格的内容,索引从0开始,(行,列),(0,0)代表第1行,第1列 sheet.nrows #获取总行数 sheet.ncols #获取纵列数
二、写入excel:xlwt ——只能新建一个excel,往里面写内容,不是修改
book=xlwt.Workbook() sheet=book.add_sheet('人员名单') sheet.write(0,0,'姓名) sheet.write(0,1,'学习形式') sheet.write(1,0,'xiaohei') #(行,列,内容) sheet.write(1,1,'现场') #写完要保存: book.save('E:BestTest上课内容student.xls') # 保存时,如果用的是微软的office,后缀要用.xls # 如果是wps,就用.xls .xlsx
练习:list中每个元素写进表格中
方法一:
list=[ [1,'han','1361111111'], [2, 'xiaoming', '1361111111'], [3, 'xiaohei2', '1361111111'], [4, '小白', '1361111111'] ] row=1 #定义行号,空出表头,从第二行,第一列开始写 for row_data in list: col=0 for col_data in row_data: sheet.write(row,col,col_data) col+=1 row+=1 book.save('test.xls')
方法二:使用枚举函数:enumerate()
for row,row_data in enumerate(list,1) #取list中下标和元素,下标定义初始索引是1 print(row,row_data) for col,col_data in enumerate(row_data) #不传索引初始值,默认从0开始 print(col,col_data) sheet.write(row,col,col_data) book.save('test1.xls')
三、 修改excel
from xlutils import copy import xlrd #两个模块配合才能修改 #操作步骤: #1打开一个excel #2复制一份 #3修改 book=xlrd.open_workbook('test.xls') #可写绝对路径 new_book=copy.copy(book) print(dir(new_book)) #查看new_book可做的操作 sheet=new_book.get_sheet(0) #定位sheet页,xlutils中的定位sheet的方法不同于xlrd title=['id','name','phone'] for col,t in enumerate(title): sheet.write(0,col,t) new_book.save('test.xls') #运行是文件不能是打开的状态,否则会报错
四、枚举函数:enumerate(list)
list=['xiaomingn','xiaohei','xiaobai'] num=1 for i in list: print("编号:%s-->%s"%(num,i)) num+=1 #同下:
#enumerate(list):循环时,同时循环下标和元素 enumerate(list,1) #可指定从几开始,1,2,3,……如果不指定是默认从零开始,0,1,2,……
for count,value in enumerate(list,1) print("编号:%s-->%s"%(count,value))