Python操作excel
#读取excel
# import xlrd #导入读excel的模块
# book = xlrd.open_workbook('szz.xls') #建立excel链接
# sheet = book.sheet_names() #获取所有的sheet页
# sheet = book.sheet_by_index(0) #根据sheet页的位置取sheet页
# sheet = book.sheet_by_name('stu') #根据sheet页的名字取sheet页
# print(sheet.nrows) #获取sheet里面的行
# print(sheet.ncols) #获取sheet页里面的列
# print(sheet.row_values(0)) #获取第0行的数据
# print(sheet.col_values(0)) #获取第0列的数据
# print(sheet.cell(1,1).value) #获取第二列第二行数据
# 实例操作(读取excel里面的内容):
import xlrd
book = xlrd.open_workbook('szz.xls')
sheet = book.sheet_by_index(0) #根据sheet页的位置取sheet页
list = []
for i in range(1,sheet.nrows): #i代表的是每一行,因为第一行是比奥拓,所以从第二行开始循环
d = {}
name = sheet.cell(i,0).value #行是循环出的数据、不固定的
age = sheet.cell(i,1).value
sex = sheet.cell(i,2).value
score = sheet.cell(i,3).value
d['name']=name
d['age']=int(age)
d['sex']=sex
d['score']=score
list.append(d)
print(list)
#结果是这样的:[{'sex': '女', 'score': 89.9, 'name': 'mary', 'age': 20}, {'sex': '女', 'score': 88.0, 'name': 'mary1', 'age': 30}, {'sex': '女', 'score': 100.0, 'name': 'mary2', 'age': 40}]
# 写excel
import xlwt
book = xlwt.Workbook() #新建一个excel对象
sheet = book.add_sheet('stu') #添加一个sheet页
# lis = [{'name':'Nancy','sex':'女','age':'33'},{'name':'tom','sex':'男','age':'40'}]
# sheet.write(0,0,'name') #在第一行第一列写入name
# book.save('stu.xls') #保存excel文件
#实例(将list、title写入excel内)
# list = [{'sex': '女', 'score': 89.9, 'name': 'mary', 'age': 20},
# {'sex': '女', 'score': 88.0, 'name': 'mary1', 'age': 30},
# {'sex': '女', 'score': 100.0, 'name': 'mary2', 'age': 40}]
# title = ['姓名','性别','成绩'] #表头
# for i in range(len(title)): #处理表头,title多长,就循环几次
# sheet.write(0,i,title[i]) #i是list的下标,也是代表每一列
#
# for row in range(len(list)): #取list的长度,控制循环次数
# name = list[row]['name']#list里面存的是字典,list[row]就代表list里面的字典,然后在字典里取值:姓名
# sex = list[row]['sex'] #性别
# age = list[row]['age'] #年龄
# new_row = row+1 #第一行已经写了表头,这里要从第二行开始写,因此row要加1
# sheet.write(new_row,0,name) #在第new_row行第一列写入name值(列是固定的,行是循环的)
# sheet.write(new_row,1,sex)
# sheet.write(new_row,2,age)
# book.save('stu1.xls') #保存为stu1.xls文件(必须是xls的)
结果: