import xlwings as xw
import pandas as pd
import openpyxl
import os
#拆分表格
def extract_tables_from_excel(file_path, sheet_name='Sheet1'):
df = pd.read_excel(file_path, sheet_name=sheet_name)
tables = []
temp_df = []
# 分割逻辑:遇到空行就分割
for _, row in df.iterrows():
if row.isnull().all(): # 判断空行
if temp_df:
tables.append(pd.DataFrame(temp_df))
temp_df = []
else:
temp_df.append(row)
if temp_df:
tables.append(pd.DataFrame(temp_df))
return tables
def merge_tables(merging_tables, existing_tables):
merged_tables = []
for new_table, old_table in zip(merging_tables, existing_tables):
merged_table = pd.concat([old_table, new_table], ignore_index=True)
merged_tables.append(merged_table)
return merged_tables
# 主函数
def main(input_files, existing_files, output_dir):
all_existing_tables = [pd.read_excel(file) for file in existing_files]
for file in input_files:
merging_tables = extract_tables_from_excel(file)
all_existing_tables = merge_tables(merging_tables, all_existing_tables)
# 输出合并后的表格
for idx, table in enumerate(all_existing_tables):
output_file_path = os.path.join(output_dir, f'merged_output_{idx + 1}.xlsx')
table.to_excel(output_file_path, index=False)
print(f'Saved merged table to {output_file_path}')
input_files = [r"D:\2024年6月14日周督促会\周督促会-南岸支行(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-业务一部(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-渝北支行(6月13日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-九龙坡支行(6月13日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-高新支行(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-巴南支行(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-长寿支行(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-营业部(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-业务二部(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-公司业务四部(6月14日).xlsx",
r"D:\2024年6月14日周督促会\周督促会-拓展一部(6月14日).xlsx"]
existing_files = [r"D:\2024年6月14日周督促会\next\output_table_1.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_2.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_3.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_4.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_5.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_6.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_7.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_8.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_9.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_10.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_11.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_12.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_13.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_14.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_15.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_16.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_17.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_18.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_19.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_20.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_21.xlsx",
r"D:\2024年6月14日周督促会\next\output_table_22.xlsx",]
output_dir = r'D:\2024年6月14日周督促会\first'
main(input_files, existing_files, output_dir)
如何让提出来的小表格按空行分隔开