Python合并一个 Excel 里面的多张表
刚需要将入职五个月的日报汇总, 但是每日都是在通一个excel里面新建副表写日报,现在已经积累了84张附表(每周4张,总共21周),手动复制粘贴每张表格是相当耗时的工作。在这个时候,我开始思考:有没有一种更快捷的方法来合并这些表格呢?于是,我想到了使用Python。
一、必要的库文件
Excel文件中包含多个工作表,并且想要将这些工作表合并成一个,可以使用Python的pandas库来处理。
在这之前你可能需要安装的库:
pip install openpyxl
pip install pandas
二、参考代码
直接上 Python 参考代码:
import pandas as pd
# 读取Excel文件
file_path = 'C:\\Users\\97942\\Desktop\\工作计划总表.xlsx' # 替换为你的Excel文件路径
xls = pd.ExcelFile(file_path)
# 创建一个空的数据帧,用于存储合并后的数据
merged_df = pd.DataFrame()
# 遍历每个工作表并合并
for sheet_name in xls.sheet_names:
df = pd.read_excel(file_path, sheet_name=sheet_name)
merged_df = pd.concat([merged_df, df], ignore_index=True)
# 将合并后的数据保存为新的Excel文件
merged_file_path = 'merged_excel_file.xlsx' # 替换为你想要保存的新文件路径
merged_df.to_excel(merged_file_path, index=False)
print(f'合并完成,保存为 {merged_file_path}')
三、删除多余行
合并后,想要删除包含"工作计划"的行和空行。
import pandas as pd
# 读取Excel文件
file_path = 'C:\\Users\\97942\\Desktop\\merged_excel_file.xlsx' # 替换为你的Excel文件路径
df = pd.read_excel(file_path, header=None) # 假设数据没有列名,所以使用header=None
# 删除包含"工作计划"的行
df = df[~df[0].astype(str).str.contains('工作计划')] # 将列转换为字符串后再进行contains操作
# 删除空行
df = df.dropna(how='all')
# 将结果保存为新的Excel文件
new_file_path = 'new_excel_file.xlsx' # 替换为你想要保存的新文件路径
df.to_excel(new_file_path, index=False, header=False) # 不保留列名
print(f'已删除包含"工作计划"的行和空行,保存为 {new_file_path}')