首页 > 编程语言 >Python自动化:一键提取千万个Excel指定数据

Python自动化:一键提取千万个Excel指定数据

时间:2024-07-22 13:55:35浏览次数:13  
标签:千万个 name Python Excel new workbook path folder data

一、传统方法的局限性
  • 打开每个Excel文件,逐个查找需要的数据。

  • 筛选出老板需要的数据列。

  • 复制并粘贴到新的工作表中。

  • 保存并关闭每个文件。

这个过程不仅耗时,而且容易出错。每一次的筛选都可能遗漏数据,每一次的复制粘贴都可能引入错误。

二、 Python自动化的解决方案

import os
import xlwings as xw
import pandas as pd


def extract_data(folder_path, dst, name):
    if not os.path.exists(folder_path):
        print('文件夹路径不正确,请检查')
        return

    # 启动Excel应用,不显示界面
    app = xw.App(visible=False, add_book=False)
    try:
        files = [os.path.join(folder_path, f) for f in os.listdir(
            folder_path) if f.endswith('.xlsx')]
        data = []
        for file in files:
            workbook = app.books.open(file)
            for sheet in workbook.sheets:
                values = sheet.range('A1').expand().options(pd.DataFrame).value
                filtered = values[values['部门'] == name]##此处的条件可以自定义任意多个
                if not filtered.empty:
                    data.append(filtered)
            workbook.close()
        if data:
            new_workbook = app.books.add()
            new_worksheet = new_workbook.sheets.add(name)
            new_worksheet.range('A1').value = pd.concat(
                data, ignore_index=True)
            new_workbook.save(dst)
            new_workbook.close()
        else:
            print(f"未找到名称为{name}的数据")
    except Exception as e:
        print(f"错误信息: {e}")
    finally:
        app.quit()


# 使用示例
folder_path = '年假_按部门'
dst = './汇总数据.xlsx'
name = '工程部'
extract_data(folder_path, dst, name)

一键提取上百个Excel表中的特定数据,汇总到一个新工作簿中,整个过程只需几秒钟

标签:千万个,name,Python,Excel,new,workbook,path,folder,data
From: https://blog.csdn.net/Richardlygo/article/details/140607798

相关文章

  • Python:提交和跟踪许多子流程会导致“卡住”子流程
    我有一个第3方cli可执行文件,需要从python代码中调用。这些都是繁重的计算(CPU),我需要调用它大约50-100次。可执行文件本身在某种程度上是多线程的,但不是所有步骤,而且我有很多可用的核心。这意味着我希望同时运行多个子进程,但不是全部。因此,我需要提交其中一些,然后跟踪......
  • 无法在 Ubuntu 20.04 中安装 python3-venv,一些损坏的软件包
    这可能很长,但请耐心看完当我在关注这篇文章时尝试安装python3-venvsudoaptinstallbuild-essentiallibssl-devlibffi-devpython3-dev它抛出了以下错误:libffi-devpython3-devReadingpackagelists...DoneBuildingdependencytreeRead......
  • 正则表达式在python爬虫中常用的方法举例
    在爬虫中,正则表达式被广泛用于从网页中提取特定信息。以下是一些常用的正则表达式方法举例,以及它们在爬虫中的典型应用场景:1.提取URLimportreurl_pattern=r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'urls=re.findall(url_pattern,html_content)用于从网页中......
  • 使用 Python XlsxWriter 将 DatePicker 添加到 Excel 单元格中?
    我正在尝试使用PythonXlsxWriter生成的Excel创建输入表单。我想知道是否可以在Excel单元格中添加一个迷你日历(作为DatePicker)供用户输入日期?我偶然发现了Microsoft支持团队提供的本指南插入日期选择器:|||https://support.microsoft.com/en-us/office/......
  • [1037] Python operation of three keys shortcut (pynput)
    Theshortcutof win+shift+leftdoesnotworkwellin pyautogui,butitworkswellin pynput.MovingtheActiveWindowtoaDifferentMonitor: You’reright;PyAutoGUIdoesn’tdirectlysupportmovingwindowsacrossmonitorswiththeeleganceofaswan......
  • Python:定期检测断开故障的USB设备并重新初始化实例
    我有一个USB设备,有时会通过USB端口发送串行数据。问题是设备出现故障,有时会无缘无故地断开连接并再次连接到电脑。问题不大,但在这些情况下我需要重新初始化serial.Serial(port)实例,这有点烦人。该设备没有可以从我那里收到的任何命令,我可以验证它是否已连接。我可以......
  • 【校招+社招】华为OD机试 - 拼接URL(Java、JavaScript、Python、C、C++)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)算法概述URL拼接(URL拼接)是指将多个URL组件(方案、主机、端口、路径、查询参......
  • 使用 Google Colab 时,Python 包“datasets”从 virtualenv 目录“site-packages”中消
    我正在使用GoogleColab并尝试创建一个虚拟环境来工作。我的代码是:fromgoogle.colabimportdrivedrive.mount('/content/drive')!pipinstallvirtualenvmyenv_dir='/content/drive/MyDrive/virtual_env/'!virtualenv{myenv_dir}!chmod+x{myen......
  • Python 3 - openpyxl - 按名称迭代列
    使用openpyxl不按数字而是按列标题(ws第一行中的字符串值)迭代列的最简单方法是什么:如下所示:forcellinws.columns['revenue']:print(cell.value)不幸的是,openpyxl不直接支持像ws.columns['revenue']这样按列标题进行迭代。openpyxl......
  • Python selenium 网络抓取 recaptcha
    我想抓取一个网站,但在此之前有一个验证码,我什至使用api获取了数据,并且我还将其注入到网站中,因为网页没有提交按钮,我无法提交。流程是这样的,如果我解决同一网址中的验证码,隐藏的内容将被显示。但它并没有得到解决。我到处都找过了。我找不到解决方案。谁能帮我解决这个问题?......