如何将多张 excel 拼接成一张 excel?
How to concat excels with multiple sheets into one excel?
该文件夹包含至少 20 个 excel。每个 excel 包含九个 sheet。这些 excel 具有相同类型的 sheet(相同的 header 但数据不同)。我需要将这 20 excels sheet 由 sheet 连接成一个 excel。每个 excel 中的前两个 sheet 是指令。它们是可以跳过的。我怎样才能做到这一点?谢谢!
示例:文件 A Sheet 3,文件 B sheet 3,文件 A sheet 4,文件 B sheet 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()
该文件夹包含至少 20 个 excel。每个 excel 包含九个 sheet。这些 excel 具有相同类型的 sheet(相同的 header 但数据不同)。我需要将这 20 excels sheet 由 sheet 连接成一个 excel。每个 excel 中的前两个 sheet 是指令。它们是可以跳过的。我怎样才能做到这一点?谢谢!
示例:文件 A Sheet 3,文件 B sheet 3,文件 A sheet 4,文件 B sheet 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()