python办公自动化之二:openpyxl写入表格数据

一、导入库并打开一个表单

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

你可能感兴趣的:(python办公自动化之二:openpyxl写入表格数据)