python怎么对excel进行读、写、修改的操作--总结记录

1.场景分析

公司让我把A表中的id和另外B表的中的id进行匹配,如果成功就在A表中id的后面追加内容,我是用程序解决的,当然还有很多可以解决的。

2.需要的库

  • xlrd 
  • xlutils
  • xlwt

直接pip install xx就可以了,xx就是你需要下载的库名

3.对Excel的写操作实例(只能写不能读)

对于Excel写操作的时候不能进行读操作

#coding:utf-8
import xlwt
stus = [['姓名', '年龄', '性别', '分数'],
        ['Micheal', 23, '女', 88.9],
        ['mary', 24, '女', 99.9],
        ['Micheal', 25, '女', 66.9],
        ['mary', 26, '女', 77.9]
        ]
#只能写不能读
book=xlwt.Workbook()#新建一个excel
sheet = book.add_sheet("sheetName")#添加一个sheet页
row=0#控制行
for stu in stus:
    col=0#控制列
    for s in stu:
        sheet.write(row,col,s)
        col+=1
    row+=1
book.save("C:\\Users\\Administrator\\Desktop\\demo2.xls")#保存

4.对Excel的读操作实例(只能读不能写)

#coding:utf-8
import xlrd
#只能读不能写
book = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\aaa.xls')#打开一个excel
sheet = book.sheet_by_index(0)#根据顺序获取sheet
# sheet2 = book.sheet_by_name('case1_sheet')#根据sheet页名字获取sheet
print(sheet.cell(0,0).value)#指定行和列获取数据
print(sheet.cell(0,1).value)
print(sheet.cell(0,2).value)
print(sheet.cell(0,3).value)
print(sheet.ncols)#获取excel里面有多少列
print(sheet.nrows)#获取excel里面有多少行
print(sheet.get_rows())#获取所有行数据
for i in sheet.get_rows():
    print(i)#获取每一行的数据
print(sheet.row_values(0))#获取第一行
for i in range(sheet.nrows):#0 1 2 3 4 5
    print(sheet.row_values(i))#获取第几行的数据

print(sheet.col_values(1))#取第一列的数据
for i in range(sheet.ncols):
    print(sheet.col_values(i))#获取第几列的数据

5.对Excel的修改操作实例(能读能写)

我们想对Excel边读边写的话,就只需要复制一份进行写

from xlutils.copy import copy
import xlrd
#xlutils:修改excel
# 参数说明: formatting_info=True 保留原excel格式 前面的excel文件一定要是xls结尾的,因为现在xlrd不支持xlsx
book1 = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\demo2.xls',formatting_info=True)
book2 = copy(book1)#拷贝一份原来的excel
sheet = book2.get_sheet(0)#获取第几个sheet页,book2现在的是xlutils里的方法,不是xlrd的
sheet.write(1,3,'Hi')#第二行第四列修改为Hi
sheet.write(1,0,'hello')#第二行第一列修改为hello
book2.save('C:\\Users\\Administrator\\Desktop\\demo3.xls')#保存

注意事项:

1.我们在进行修改操作的时候,特别是复制文件那个环境,原文件进行formatting_info=True可以保存原来Excel的格式,不加就没得格式,而且不能复制原来Excel里面的图片(具体情况我也不知道,知道的小伙伴也可以告诉大家),并且我们还必须用以.xls结尾的Excel文件。因为xlrd在0.6以后就不支持xlsx,如果非要用.xlsx就自己找一下xlsx0.6以下的版本吧。当然你不用formatting_info=True这个参数的话,还是可以对.xlsx进行操作,只是加上这个参数的时候会报错。

2.行和列都是以0开始的。


总结:我们结合上面的读写修改操作就能正常的对Excel的操作,但是一些什么修改字体还有什么的这里就不说了,百度一下上面的库,慢慢的学习吧,这里也是对昨天做到事情所用到的技术来总结记录一下。

联系我:微信y958231955  微信公众号:程序员PG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值