一、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