python办公自动化——批量合并工作簿案例

1、案例需求:将多个工作簿中的数据汇总合并到一个新的工作簿中

步骤:

a.创建新工作簿、创建一个新工作表

b.创建工作表,编辑工作表名

c.设置单元格样式:字体、对齐样式、填充样式

d.合并单元格、添加表头

e.遍历工作簿并打开对应的工作表,取出对应的工作表中的值

f.写入新的工作表中

2、工作簿前后展示

要归并处理的工作簿:

单个工作簿中的数据:

 3、代码展示:

        引入表格数据处理模块:openpyxl、单元格格式处理模块 openpyxl.styles

import openpyxl
from openpyxl.styles import Font,Alignment,PatternFill
# 创建新工作簿
wb = openpyxl.Workbook()
# 创建一个新工作表
ws=wb.active
# 编辑工作表名
ws.title='汇总数据'
# 元组需要加逗号
ws.append(('小保健大药房2022全国销售数据',))

# 设置单元格样式
cell = ws['A1']
# 设置单元格字体
cell.font = Font(size= 20,bold=True,color='0000ff',name='微软雅黑')
# 设置单元格对齐样式
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置单元格填充样式
cell.fill=PatternFill(fill_type='solid', fgColor="00ff00")

# 合并单元格
ws.merge_cells('A1:G1')
# 向工作表中写入表头
ws.append(['购药时间', '社保卡号', '商品编码', '商品名称', '销售数量', '应收金额', '实收金额'])
# 需要要合并的工作簿名
names = ('高新店','犀浦店','新津店')
for name in names:
    # 循环遍历打开这些工作簿
    wb1=openpyxl.load_workbook(f'小宝剑大药房({name})2018年销售数据.xlsx')
    # 打开每一个工作簿的第一个工作表
    sheet=wb1.worksheets[0]
    # 选取数据区域A3:GX
    rows=sheet[f'A3:G{sheet.max_row}']

    # 将行列表的数据放到一个大列表中
    #  data = []
    #  for row in rows:
    #      if row[0].value is not None:
            # 将工作表中每一行的数据放到一个列表中
    #         res = []
    #         for cell in row:
    #             res.append(cell.value)
    #             data.append(res)

    # 将以上代码转换为列表推导式
    data=[[cell.value for cell in row] for row in rows if row[0].value]
    # 将这些数据一行一行写入新工作簿的工作表中
    for content in data:
        ws.append(content)
# 保存工作簿,并命名
wb.save('小保健药房汇总数据20220512.xlsx')

处理后的数据展示:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值