我有两本Excel工作簿。
一个带有3张纸,另一个只有一张。我正在尝试将这两部分合并为一本工作簿。 此工作簿应有4张纸。
from pandas import ExcelWriter
writer = ExcelWriter("Sample.xlsx")
for filename in glob.glob("*.xlsx"):
df_excel = pd.read_excel(filename)
(_, f_name) = os.path.split(filename)
(f_short_name, _) = os.path.splitext(f_name)
df_excel.to_excel(writer, f_short_name, index=False)
writer.save()
这样做可以给我一个工作簿,但是只有两页。第一本工作簿的第一页和第二本工作簿的第二页。
如何在一个工作簿中获取所有4张纸?
答案 0 :(得分:3)
您必须循环浏览工作表名称。请参见以下代码:
from pandas import ExcelWriter
import glob
import os
import pandas as pd
writer = ExcelWriter("output.xlsx")
for filename in glob.glob("*.xlsx"):
excel_file = pd.ExcelFile(filename)
(_, f_name) = os.path.split(filename)
(f_short_name, _) = os.path.splitext(f_name)
for sheet_name in excel_file.sheet_names:
df_excel = pd.read_excel(filename, sheet_name=sheet_name)
df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False)
writer.save()