python - 如何将具有多张工作表的excel合并为一个excel?
问题描述
该文件夹包含至少 20 个 Excel。每个 excel 包含九张工作表。这些 excel 具有相同类型的工作表(相同的标题但不同的数据)。我需要将这 20 个 excel 逐页合并为一个 excel。每个excel中的前两张是说明。它们是可跳过的。我怎样才能做到这一点?谢谢!
示例:文件 A 表 3、文件 B 表 3、文件 A 表 4、文件 B 表 4
所以最终组合文件将如下所示:
解决方案
不久前我不得不做一些类似的事情:
此代码应该为您解决问题:
import pandas as pd
import os
collection = {}
for file in os.listdir():
if file.endswith(".xlsx"):
mysheets = pd.ExcelFile(file)
mysheetnames = mysheets.sheet_names
for i in mysheetnames[2:]: #change the 2 in [2:] to change how many sheets you delete
mydata = pd.read_excel(file, i)
combi = collection.get(i, [])
collection[i] = combi + [mydata]
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
for key in collection:
myresult = pd.concat(collection.get(key), sort=False)
myresult.to_excel(writer, sheet_name=key)
writer.save()
推荐阅读
- c# - ASP.NET Web API 连接到 MySQL 数据库
- java - 如何使用 Java 使用 S3 对象 ARN 访问 S3 对象
- java - 在 MS 365 开发计划帐户中使用 disabledPlans 的 AssignedLicense
- jenkins - 如何在 jenkins maven 工作中禁止特定的 jar 版本?
- node.js - 如何在 PostgreSQL GEOMETRY 字段上创建空间索引?
- android - android studio颤振中未显示android项目结构
- html - 如何使用 boostrap 添加侧组输入?
- reactjs - React-Player 媒体控件不适用于 react .js 的较小宽度,例如 100px
- android - 使用 Chrome Devtools CSS Grid 检查器进行远程 webview
- google-apps-script - 在 Google 工作表中启用加载项