如何将多个 excel 工作簿合并为具有多个工作表的单个工作簿
How to combine multi excel workbook into single workbook with multiple worksheets
我有 3 个工作簿,单张 sheets.I 需要将所有工作簿合并为一个 3 张工作簿。
我尝试了以下代码:
from pandas import ExcelWriter
writer = ExcelWriter("Sample.xlsx")
for filename in glob.glob("*.xlsx"):
df_excel = pd.read_excel(filename,engine='openpyxl')
(_, 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()
我收到类似“文件不是 zip 文件”的错误
"Sample.xlsx" 是在与输入工作簿相同的目录中创建的,在您使用 glob.glob("*.xlsx")
查找所有文件之前。因此,您尝试阅读“Sample.xlsx”,这是您的作者。这不起作用。
确保只迭代真实的输入工作簿,例如像那样:
import pandas as pd
from pandas import ExcelWriter
import glob
import os
writer = ExcelWriter("Sample.xlsx")
input_workbooks = glob.glob("*.xlsx")
input_workbooks.remove("Sample.xlsx")
for filename in input_workbooks:
df_excel = pd.read_excel(filename,engine='openpyxl')
(_, 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()
最好将输出工作簿 ("Sample.xlsx") 保存到另一个目录以避免混淆。显然,当你这样做时,你不能再从列表中删除它,所以只需删除行:input_workbooks.remove("Sample.xlsx")
我有 3 个工作簿,单张 sheets.I 需要将所有工作簿合并为一个 3 张工作簿。
我尝试了以下代码:
from pandas import ExcelWriter
writer = ExcelWriter("Sample.xlsx")
for filename in glob.glob("*.xlsx"):
df_excel = pd.read_excel(filename,engine='openpyxl')
(_, 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()
我收到类似“文件不是 zip 文件”的错误
"Sample.xlsx" 是在与输入工作簿相同的目录中创建的,在您使用 glob.glob("*.xlsx")
查找所有文件之前。因此,您尝试阅读“Sample.xlsx”,这是您的作者。这不起作用。
确保只迭代真实的输入工作簿,例如像那样:
import pandas as pd
from pandas import ExcelWriter
import glob
import os
writer = ExcelWriter("Sample.xlsx")
input_workbooks = glob.glob("*.xlsx")
input_workbooks.remove("Sample.xlsx")
for filename in input_workbooks:
df_excel = pd.read_excel(filename,engine='openpyxl')
(_, 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()
最好将输出工作簿 ("Sample.xlsx") 保存到另一个目录以避免混淆。显然,当你这样做时,你不能再从列表中删除它,所以只需删除行:input_workbooks.remove("Sample.xlsx")