如何在使用 python pandas 组合多个 Excel 工作簿的同时在单个工作簿中获取单独的 sheet?

How to get the separate sheet in single workbook while combining multiple Excel workbook using python pandas?

我的代码:

Final_wb=pd.DataFrame()
 for filename in glob.glob("*.xlsx):
   ws=pd.read(filename)
   Final_wb=pd.concat([Final_wb,ws],ignore_index=True)
 Final_wb.to_excel("Output.xlsx",index=False)

上面的代码 works.But 它将所有工作簿合并为单个工作簿 sheet.I 需要读取所有工作簿并将其合并为具有多个工作表的单个工作簿。(例如,假设我有 3 个工作簿每个工作簿都有每张纸,所以我可以获得单个工作簿 [output.xlsx] 和 3 张)。我不想使用 xlsx 编写器和 openpyxl。分享你的知识..之前有人这样做过

I dont want to use xlsx writer and openpyxl

不可行,因为您使用的是 xslx。如果您想使用 xlwt 库,则必须将文件扩展名更改为 xsl.

假设你做到了 import pandas as pd:

with pd.ExcelWriter("Output.xlsx", mode = 'a') as writer:
    for filename in glob.glob("*.xlsx"):
        ws = pd.read(filename)
        df = DataFrame(ws)
        df.to_excel(writer, sheet_name = filename.strip('.xlsx'), index = False)

如果您确实使用了 XslxWriter 库,那么当您尝试执行 pd.ExcelWriter("Output.xlsx", mode = 'a', engine = 'xlsxwriter') 时,您会收到一个异常,指出该引擎不支持追加模式。但是由于在导出所有工作簿后文件将被关闭,因此无论如何它将以默认模式 ('w') 工作。示例:

"""pip install pandas XslxWriter"""

import pandas as pd

with pd.ExcelWriter("Output.xlsx", mode = 'w', engine = 'xslxwriter') as writer:
    for filename in glob.glob("*.xlsx"):
        ws = pd.read(filename)
        df = DataFrame(ws)
        df.to_excel(writer, sheet_name = filename.strip('.xlsx'), index = False)