使用 openpyxl 将工作表从 excel 个文件移动到一个工作簿中

Moving sheets from excel files into one workbook using openpyxl

所以我一直在尝试编写一个脚本,该脚本从特定位置加载所有 excel 文件,并将这些文件中的工作表移动到一个工作簿中。我以错误结尾:

AttributeError: 'DataFrame' object has no attribute 'DataFrame'

我对此很陌生,所以我非常感谢有关如何使它起作用的任何提示。我只能坚持 使用 openpyxl 因为目前我无法在我的工作站上安装 xlrd 模块。

from pandas import ExcelWriter
import glob
import pandas as pd
import openpyxl

writer = ExcelWriter("output.xlsx")
for filename in glob.glob (r"C:\path\*.xlsx"):
    wb = openpyxl.load_workbook(filename)
    for ws in wb.sheetnames:
        ws = wb[ws]
        print (ws)
        data = ws.values
        columns = next(data)[0:]
        df= pd.DataFrame(data, columns=columns)
        print(df)
        for df in df.DataFrame:
            df.to_excel([writer,sheet_name= ws)

writer.save()

首先,您必须将 sheet_name 用作字符串而不是对象,最后再做一件事,因为我们遍历 sheet 名称时不需要循环。

from pandas import ExcelWriter
import glob
import pandas as pd
import openpyxl


writer = ExcelWriter("output.xlsx")
for filename in glob.glob (r"C:\path\*.xlsx"):
    wb = openpyxl.load_workbook(filename)
    for ws in wb.sheetnames:
        ws1 = wb[ws]
        data = ws1.values
        columns = next(data)[0:]
        df= pd.DataFrame(data, columns=columns)
        df.to_excel(writer,sheet_name=ws,index = False)

writer.save()