File size: 2,055 Bytes
45e5368
 
 
456b990
0684859
456b990
0684859
bc16910
45e5368
456b990
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c84826a
3a33d11
c84826a
456b990
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import gradio as gr
import pandas as pd


def process_excel(file):
    # 注意这里的file.name,如果自己在线下python环境运行的话要删掉(.name)
    df = pd.read_excel(file.name, engine='openpyxl')
    return df

def merge_excel_tables(file_path1, file_path2,output_file = '合并后的表.xlsx'):
    # 读取第一张表
    df1 = process_excel(file_path1)

    # 读取第二张表
    df2 = process_excel(file_path2)

    # 执行关联操作,假设关联列名为'关联列'
    merged_df = df1.merge(df2,  left_on=list(df1.columns)[0], right_on=list(df2.columns)[0], how='left')

    # 重命名合并后的表格的列名,去除_x和_y后缀
    column_mapping = {}
    for col in df1.columns:
        column_mapping[col] = col

    for col in merged_df.columns:
        if col.endswith('_x'):
            new_col = col[:-2]  # 去除_x后缀
            if new_col in column_mapping:
                column_mapping[new_col] = new_col  # 如果存在相同的列名,保持不变
            merged_df.rename(columns={col: new_col}, inplace=True)
        elif col.endswith('_y'):
            new_col = col[:-2]  # 去除_y后缀
            merged_df.rename(columns={col: new_col}, inplace=True)
    # 删除没有数据的列
    merged_df = merged_df.dropna(axis=1, how='all')

     #把修改后表格的标签写好
    merged_df = merged_df[list(df1.columns)]

    # # 保存结果到新的Excel文件
    # merged_df.to_excel(output_file, index=False)

    return merged_df

iface = gr.Interface(fn=merge_excel_tables, 
                     inputs=[gr.File(type='file',label='excle表格1'),
                             gr.File(type='file',label='excle表格2')], 
                     outputs=[gr.outputs.Dataframe(type='pandas',label='合并后表格')], 
                     title="强哥的Excel Processor",
                     description="功能描述:根据表格一的第一列,寻找表格二对应第一列的行数据,把表格二中与表格一相同标签数据填入表格一")

iface.launch()