python操作excel使用xlrd、xlwt和xlutils模块。
xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。这几个模块使用pip安装即可,下面是这几个模块的使用。
一、xlrd模块,读取excel
xlrd用来读excel,只能是xls格式,xlsx不能用这些模块
1、 打开excel: open_workbook('表名')
2、 打开sheet页: 工作簿. sheet_by_index(0)
3、 读取数据
import xlrd #只能读 book = xlrd.open_workbook('nhy.xls') #打开excel,这个表必须存在,否则会报错 print(book.nsheets)#获取到excel里面总共有多少个sheet页 print(book.sheet_names()) #获取所有sheet页的名字,返回一个列表 sheet = book.sheet_by_index(0) #根据sheet页的索引获取sheet页 #sheet = book.sheet_by_name('sheet1')#根据sheet页的名字获取sheet页 print(sheet.cell(0,0).value) #按照索引,获取某个单元格里面的内容,第一个值为列,第二个值为行 # print(sheet.cell(1,0).value) print(sheet.row_values(0))#获取第一行的数据 print(sheet.row_values(1))#获取某一行的数据 print(sheet.nrows)#这个就是excel里面总共有多少行 print(sheet.col_values(0))#某一列的数据 print(sheet.col_values(1))#某一列的数据 print(sheet.ncols)#总共有多少列 #打印每行信息 for rownum in range(sheet.nrows): #循环取每行的数据 print(sheet.row_values(rownum))#取每行的数据
二、xlwt模块,xlwt模块用来写excel,写一个新的excel
1、新建excel对象
2、添加sheet页:excel对象.add_sheet('xxx')
3、写入表头
4、循环写入每行数据
import xlwt title = ['姓名', '年龄', '性别', '分数'] stus = [['mary', 20, '女', 89.9], ['mary', 20, '女', 89.9], ['mary', 20, '女', 89.9], ['mary', 20, '女', 89.9]] wbk = xlwt.Workbook() # 新建一个excel对象 sheet = wbk.add_sheet('stu')# 添加一个名为stu的sheet页 for i in range(len(title)): # 写入表头 sheet.write(0, i, title[i]) # 写入每行,第一个值是行,第二个值是列,第三个是写入的值 row = 1 # 行 for i in stus: col = 0 # 列 for j in i: sheet.write(row, col, j) # 循环写入每行数据 col += 1 row += 1 # 保存数据到‘szz.xls’文件中 wbk.save('szz.xls') # 保存excel必须使用后缀名是.xls的,不是能是.xlsx的
三、xlutils模块,xlutils模块用来修改excel的内容,不能直接修改原来的excel内容,必须得先复制一个新的excel,然后对这个新的excel进行修改,用法如下:
注意:xlutils的导入很特殊,不能用import xlutils,必须用from xlutils import copy
1、 复制工作簿:copy.copy(工作簿) 首先要先用xlrd打开一个工作簿,然后才能复制
2、 获取sheet页:工作簿.get_sheet(0)
3、 修改内容:sheet页.write(行号,列号,内容)
4、保存新的excel,覆盖原来的excel
import xlrd from xlutils import copy book1 = xlrd.open_workbook('nhy.xls')#打开原来的excel new_book = copy.copy(book1)#拷贝一个新的excel sheet = new_book.get_sheet(0)#获取第一个sheet页 sheet.write(1,3,'20')#写入excel,第一个值是行,第二个值是列 sheet.write(1,1,'张三') new_book.save('nhy.xls')#保存新的excel,保存excel必须使用后缀名是.xls的,不是能是.xlsx的