利用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)