Python自动化办公:27行代码实现将多个Excel表格内容批量汇总合并到一个表格

390 篇文章 2 订阅
182 篇文章 2 订阅

序言

老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去。

img

还好我会Python,分分钟就搞定了,这要是换个不会Python的,不得加班到第二天天亮去了~

img

这么好用的技能,必须分享给大家,话不多说,咱们直接开始!

准备工作

咱们需要先准备表格数据,会爬虫的兄弟可以自己爬一点,不会的,[点击这里可以找管理员小姐姐直接拿数据]

本文项目都有详细的配套教程以及源码,都已经打包好上传到百度云了,链接在文章结尾处!

扫码此处领取大家自行获取即可~~~

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

表格内数据

img

我这里只做展示,所以只用了五个表,咱们今天是将市级合并为省级。

img

本文思路

将当前文件夹下所有的 excel 汇总到 广东省.xlsx

添加一个新的字段 城市,字段内容为商铺所在城市,这个字段放在最前面;

星级为 star_0 的数据全部不要

只要一条数据中有三个字段为空字段,整条数据都不需要;

将价格中的 ¥ 符号去掉

代码实现

全部代码都分享给大家,咱不喜欢藏着掖着。

import glob
import openpyxl 

workbook = openpyxl.Workbook()
sheet_total = workbook.active
sheet_total.append(['城市', '门店名称', '星级', '星级得分', '点评总数', '人均消费', '口味', '环境', '服务', '链接网址', '分类', '商圈', '详细地址', '推荐菜'])


def count_none(line):
    """返回空内容的数据"""
    count = 0
    for d in line:
        if not d:
            count += 1
    return count


filenames = glob.glob('*/*.xlsx')
for filename in filenames:
    # print(filename)
    city = filename.split('.')[0].split('\\')[-1]
    workbook_temp = openpyxl.load_workbook(filename)
    sheet = workbook_temp.active
    for row in sheet.iter_rows(min_row=2, min_col=1, max_col=sheet.max_column, max_row=sheet.max_row):
        row_data = [col.value for col in row]
        if row_data[1] == 'star_0':
            continue

        # 定义一个方法判断空字段的数量
        if count_none(row_data) >= 3:
            continue

        # 去掉平均价格中的 ¥
        if row_data[4]:
            row_data[4] = row_data[4].strip('¥')
        row_data.insert(0, city)
        # print(row_data)
        sheet_total.append(row_data)
    # break  # 调试只处理一个

workbook.save('广东省.xlsx')

效果

还是刚出炉的,非常新鲜。

img

这我做了筛选,不然全是显示一个地方了。

可以看到,数据成功的合并到一个表格去了。

img

喜欢的小伙伴记得点赞收藏呀~

关注我分享更多技术干货

直接拿走代码等于白嫖,点赞收藏才是真情…

你们的支持是我更新的动力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值