一、Python操作excel
python操作excel使用xlrd、xlwt和xlutils模块
1、xlrd模块是读取excel的;
2、xlwt模块是写excel的;
3、xlutils是用来修改excel的;
二、前置条件:
使用pip install安装各模块
pip install xlrd
pip install xlwt
pip install xlutils
三、xlrd模块,xlrd模块用来读excel,具体用法如下:
import xlrd #此模块只能读不能写 book = xlrd.open_workbook(r'/Users/smh/Desktop/名单.xlsx') sheet1 = book.sheet_by_index(0)#用下标取sheet sheet2 = book.sheet_by_name('作业')#用名字取sheet print('第一行内容',sheet2.row_values(0))#row_values()取某一行的数据 print('第一列内容',sheet2.col_values(0))#col_values()取某一列的数据 print('第二行第一列内容',sheet2.cell(1,0).value)#取指定单元格的内容 print('一共有%s行'%sheet2.nrows)#多少行 print('一共有%s列'%sheet2.ncols)#多少列
四、xlwt模块,xlwt模块用来写excel,写一个新的excel
import xlwt #将列表list1写入到excel中 book = xlwt.Workbook() list1=[ [1,'xiaohei','beijing','13222123456','女'], [2,'xiaobai','shanghai','13121123456','男'], [3,'xiaolan','chengdu','13112123456','女'], ] a= list1[0] len(a)#每一个列的元素长度 len(list1)#列表长度 #第一种方法: sheet = book.add_sheet('no.1 sheet') for i in range(len(list1)): for j in range(len(list1[0])): print(list1[i][j]) sheet.write(i,j,list1[i][j]) book.save(r'/Users/smh/Desktop/test1.xlsx') #第二种方法:(从第二行开始写入) row = 1 #行号 for row_data in list1: col = 0 for col_data in row_data: sheet.write(row,col,col_data) col += 1#写完一列,列号加1 row += 1#写完一行,行号加1
book.save('test2.xls') #第三种方法,使用枚举函数:(从第二行开始写入) for row,row_data in enumerate(list1,1): for col,col_data in enumerate(row_data): sheet.write(row,col,col_data) book.save('test3.xls')
五、xlutils模块,xlutils模块用来修改excel的内容,不能直接修改原来的excel内容,必须得先复制一个新的excel,然后对这个新的excel进行修改,用法如下:
import xlrd from xlutils import copy #与import xlutils的区别:调用xlutils里的方法则不需要xlutils.copy.copy()方法,直接调用copy.copy() #from xlutils.copy import copy 调用直接copy() #1、打开一个excel #2、复制一份 #3、修改 book = xlrd.open_workbook('test2.xls') new_book = copy.copy(book)#复制一份 #print(dir(new_book)) sheet = new_book.get_sheet(0)#获取sheet页 title = ['编号','名字','地址','电话','性别'] for col,t in enumerate(title): sheet.write(0,col,t) new_book.save('test2.xls')