码迷,mamicode.com
首页 > 编程语言 > 详细

python:操作excel

时间:2017-10-18 23:05:10      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:write   app   excel   i+1   xlsx   读取   xlwt   list   []   

需要pip安装xlrd,xlwt,xlutils模块,分别是读取excel,写入excel,修改excel的

xlrd模块:
import xlrd
book=xlrd.open_workbook(r‘students.xlsx‘) #打开一个Excel文件;括号里文件不指定绝对路径的话,就是指当前目录下的excel文件
print(book.sheet_names()) #获取所有sheet的名字
sheet=book.sheet_by_index(0) #根据sheet页的第几个位置去取sheet
sheet=book.sheet_by_name(‘sheet2‘) #根据sheet页的名字获取sheet页
print(sheet.nrows) #获取该指定sheet页的所有行数,获取的是数字
print(sheet.ncols) #获取该指定sheet页的所有列数,获取的是数字
print(sheet.row_values(0)) #根据行号获取整行的数据,获取出来的是list
print(sheet.col_values(0)) #根据列号获取整列的数据,获取出来的是list
print(sheet.cell(2,1).value) #获取第3行第2列单元格里的内容;加上value获取出来的是字符串类型

eg1:读表格,并把读出的数据放在列表里,列表里的元素是字典,字典里key是id,name,sex
import xlrd
book=xlrd.open_workbook(r‘students.xlsx‘)
sheet=book.sheet_by_index(0) #打开第一个sheet表
n=sheet.nrows #求该sheet表中所有的行数
all_list=[] #定义一个空列表,放取出来的数据
for i in range(1,n): #按表格里所有的行数循环
dic = {}
lis=sheet.row_values(i)
dic[‘id‘]=lis[0]
dic[‘name‘]=lis[1]
dic[‘sex‘]=lis[2]
all_list.append(dic)
print(all_list)

xlwt模块
import xlwt
book=xlwt.Workbook() #新建一个excel对象
sheet=book.add_sheet(‘student‘) #增加一个sheet页,命名为student
sheet.write(0,0,‘编号‘) #给第一行第一列的单元格写上“编号”
book.save(‘stu.xls‘) #保存,文件名保存为stu.xls。保存在当前目录下(或者写绝对路径)
#PS:读excel的时候,xls xlsx的都可以读;但写excel的时候,保存的文件名必须是xls

eg2:给出lis和title,写一个表格
import xlwt
lis=[{‘姓名‘: ‘小名‘, ‘性别‘: ‘女‘, ‘id‘: 1.0}, {‘姓名‘: ‘小李‘, ‘性别‘: ‘中‘, ‘id‘: 2.0}, {‘姓名‘: ‘小王‘, ‘性别‘: ‘男‘, ‘id‘: 3.0},
{‘姓名‘: ‘校长‘, ‘性别‘: ‘女‘, ‘id‘: 4.0}]
title=[‘编号‘,‘姓名‘,‘性别‘]
book=xlwt.Workbook()
sheet=book.add_sheet(‘test‘)
for i in range(len(title)): #循环列表的长度
sheet.write(0,i,title[i]) #写表头
for i in range(len(lis)):
sheet.write(i+1,0,lis[i][‘id‘])
sheet.write(i+1,1,lis[i][‘姓名‘])
sheet.write(i+1,2,lis[i][‘性别‘]) #写每一个元素
book.save(‘test.xls‘)

xlutils模块
import xlrd,xlutils
from xlutils.copy import copy #引用xlutils模块里的copy
book=xlrd.open_workbook(r‘stu.xls‘) #打开原来的excel
new_book=copy(book) #通过xlutils里面的copy复制一个excel对象
sheet=new_book.get_sheet(0) #获取第一个sheet页;拷贝的新对象没有sheet_by_index()方法,只有get_sheet()方法
sheet.write(0,0,‘id‘) #把第一行第一列的单元格修改掉
new_book.save(‘stu_1.xls‘) #保存为一个新文件

python:操作excel

标签:write   app   excel   i+1   xlsx   读取   xlwt   list   []   

原文地址:http://www.cnblogs.com/hesperid/p/7689375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!