一、python操作excel,python操作excel使用xlrd、xlwt和xlutils模块。

  xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。

  这几个模块使用pip安装即可,下面是这几个模块的使用。

二、xlrd模块,xlrd模块用来读excel,具体用法如下: 

  • 读excel步骤:
  •   1、打开excel;
  •   2、选择sheet页
  •   3、读数据
  import xlrd
  wb = xlrd.open_workbook('abc.xlsx') # 打开excel

  # sheet = wb.sheet_by_name('sheet1') # 据名字选择sheet页,不推荐
  sheet = wb.sheet_by_index(0) # 据索引获取sheet页
  print(sheet.nrows) # sheet页的行数
  print(sheet.ncols) # sheet页的列数

  for rownum in range(sheet.nrows):
  print(sheet.row_values(rownum)) # 取每行的内容
  print(sheet.col_values(rownum)) # 取每列的内容
  print(sheet.cell(1, 2).value) # 获取指定单元格的值,第一个值是行,第二个值是列

 三、xlwt模块,xlwt模块用来写excel,写一个新的exce写excel步骤   

  • 写excel步骤:
  •    1、新建excel
  •     2、添加sheet页
  •     3、保存excel

import xlwt
wbk = xlwt.Workbook() # 新建一个excel对象
sheet = wbk.add_sheet('stu') # 创建一个名词为stu的sheet页
# sheet.write(0,0,'name') # 对单元格进行操作,写数据
# sheet.write(0,1,'age')
# wbk.save('stu.xls')

alist = ['name', 'age', '分数']
for i in range(len(alist)): # 写入表头
sheet.write(0, i, alist[i]) # 写入每行,第一个为行,第二个为列,第三个为写入的值

  sut = [['xiao', 18, 90], ['wang', 10, 20]]
  for i in range(len(stu)):  # 控制行数
   for j in range(len(alist)): # 控制列数
  sheet.write(i+1, j, stu[i][j]) # 循环写入每行数据,但需从第二行开始写,故i+1;stu内的值需要从stu[0][0]开始取
  wbk.save('stu.xls') # 保存excel,后缀必须为xls,因为保存为xlsx打不开

四、xlutils模块,xlutils模块用来修改excel的内容,不能直接修改原来的excel内容,必须得先复制一个新的excel,然后对这个新的excel进行修改,用法如下: 

  from xlrd import open_workbook
  from xlutils.copy import copy

  rb = open_workbook('stu.xls') # 只读方式打开excel
  wb = copy(rb) # 复制一个excel
  ws = wb.get_sheet(0) # 获取到新的excel的sheet页
  ws.write(1, 0, 'xiaof') # 写入到excel,即修改指定单元格的值
  wb.save('stu_new.xls') # 保存新的excel