一、传统方法的局限性
-
打开每个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