xlrd模块是读取excel
xlwt模块是写excel
xlutils是用来修改excel
1.读取excel
流程:打开excel-->获取sheet(顺序\sheet名称)-->获取数据(整行\整列\单个)
import xlrd #倒模块
book = xlrd.open_workbook('D:\pythonTest.xlsx') #打开一个excel,根据excel文件格式写后缀
sheet = book.sheet_by_index(0) #根据顺序获取sheet,0表示第一个sheet
sheet2 = book.sheet_by_name('sheetName') #根据sheet页名字获取sheet
print(sheet.cell(0,0).value) #指定行和列获取数据,0行0列代表excel中第一个数据
print(sheet.ncols) #获取excel里面有多少列
print(sheet.nrows) #获取excel里面有多少行
sheet.row_values(1) #取第几行的数据,返回一个列表list
sheet.col_values(1)) #取第几列的数据,返回一个列表list
#获取excel中所有的数据
for i in range(sheet.nrows): # 获取excel中有多少行
print(sheet.row_values(i))
#print(' '.join([str(x) for x in sheet.row_values(i)])) #转换str
2.写入数据
流程:创建excel-->添加sheet页-->写入数据-->保存
import xlwt #倒模块
book = xlwt.Workbook() #新建一个excel
sheet = book.add_sheet('sheet1') #添加一个sheet页
sheet.write(0,0,'姓名')#一行一行写入
sheet.write(0,1,'性别')
sheet.write(0,2,'年龄')
book.save('D:\pythonExcel.xls') #微软的office不能用xlsx结尾的,wps随意
#批量写入数据
stus = [
['姓名','年龄','性别','分数'],
['mary', 20, '女', 89.9],
['mary', 20, '女', 89.9],
['mary', 20, '女', 89.9],
['mary', 20, '女', 89.9]
]
book = xlwt.Workbook() #新建一个excel
sheet = book.add_sheet('info') #添加一个sheet页
raw=0 #控制行
for stu in stus: #循环写入
col=0 #控制列
for s in stu:
sheet.write(raw,col,s)
col+=1
raw+=1
book.save('D:\Excel.xls')
3.修改excel
流程:拷贝原来的excel-->获取sheet页-->写入修改数据-->保存
from xlutils.copy import copy #倒模块
book1 = xlrd.open_workbook('D:\Excel.xls') #打开要修改的excel
book2 = copy(book1) #拷贝一份原来的excel
sheet = book2.get_sheet(0) #获取第几个sheet页
sheet.write(1,3,0) #写入需要修改的行、列及修改后的值
sheet.write(1,0,'小黑')
book2.save('D:\Excel.xls')