Python学习② Excel根据条件对单元格修改

利用openpyxl库对excel进行读写
(没有这一库就用“pip install openpyxl”进行安装)
目的:根据对某单元格的判断,来对别的单元格进行修改写入

用图说话:有一张表,需要根据判断two这一列的内容,来填写three这一列的内容。即——if two=1,three=A;else three=B

在这里插入图片描述
↓↓↓↓↓↓↓↓↓↓变成↓↓↓↓↓↓↓↓↓↓↓↓↓
在这里插入图片描述

代码实现:

from openpyxl import load_workbook
from openpyxl.styles import Alignment

wb = load_workbook(r"I:\Python\one.xlsx")  #导入文件
ws = wb['Sheet1']    #获取工作表
center_alignment = Alignment(horizontal="center")   #用来设置单元格居中操作
#center_alignment这一句可要可不要,若这一句不要则"将单元格属性定义为居中"一句也不要
for row in ws.iter_rows(min_col=2,min_row=2,max_col=3,max_row=23):  #注释①
    ws[row[1].coordinate] = '=IF(%s=1,"A","B")'%(row[0].coordinate)   #注释②
    ws[row[1].coordinate].alignment = center_alignment   #将单元格属性定义为居中
wb.save(r"I:\Python\one.xlsx")  #保存工作簿

#注释①:这里设置了用于遍历的范围,就是从第二行第二列的单元格至第二十三行第三列单元格
#        也就是B2至C23这一范围的所有单元格。你可根据自己要求修改这一遍历的范围
#注释②:这里就是函数的实现。这里的循环是根据行遍历的,由于遍历所得到的每一行是以一个
#        列表的形式存在的,以上图为列,提取出来的第一行为B2、C2这两个单元格,这两个单
#        元格以列表的形式存在,则在列表中B2的下标就为0,C2的下标就为1。所以在
#        ws[row[1].coordinate]中row的下标为1,“.coordinate”是代表定位到row[1]这个位置
#        即C2这个位置。'=IF(%s=1,"A","B")是用来做判断,%s指的是(row[0].coordinate),
#        也就是B2,如果B2=1,则C2=A,否则C2=B。这一句代码可以理解为:
#        C2 = IF(B2=1,A,B)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值