一、导入库并打开一个表单
import openpyxl
from openpyxl.utils import get_column_letter
wb = openpyxl.load_workbook('XXX.xlsx')
ws = wb.active
二、修改表单
1.改变表单名称
ws.title = 'alter_test'
2.新建表单
ws2 = wb.create_sheet(index=2, title='addSheet_test') #参数index表示表单的位置
3.删除表单
wb.remove(wb['sheet1'])
三、单元格写入数据
1.写入指定单元格
ws['B10'] = 'HAHAHA'
2.整行写入
for row in range(1,40):
ws3.append(range(17)) #从1到39行追加写入1到16的数字
3.根据列表遍历写入
rows = [
['Number','BATCH1','BATCH2'],
[2,40,30],
[3,40,25],
[4,50,30],
[5,30,10],
[6,40,30],
[7,78,52],
]
for row in rows:
ws.append(row)
4.在指定范围的单元格写入它的坐标
for row in range(4,15):
for col in range(3,10):
ws.cell(row=row, column=col,value=get_column_letter(col)+str(row))
四、保存表单
wb.save('update-XXX.xlsx')
注意:为避免出错,通常不建议直接改写原文件
五、小实例
现有一个表格,关于某部门的议题是否已经经过审核
image.png
我们要将表格中资本运营部的法律意见改为“未审核”,资金中心的法律意见改为“无需审核”
虽然我们可以通过手动操作的方式进行修改,但这只是在表格内容少,且排列有序的情况下。如果数据有几千条,并且是乱序的,那么要修改起来是非常困难的。那么可以通过几行简单的代码,就可以快速的实现替换修改。
import openpyxl
wb = openpyxl.load_workbook('议题前置审核法律意见.xlsx')
ws = wb.active
name_update = {
"资本运营部":"未审核",
'资金中心':'无需审核'
}
for row in range(6,ws.max_row):
name = ws.cell(row=row, column=3).value
if name in name_update:
ws.cell(row=row, column=5).value = name_update[name]
wb.save('update-议题前置审核法律意见.xlsx')
运行结果
image.png