使用 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()
所以我一直在尝试编写一个脚本,该脚本从特定位置加载所有 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()