import gradio as gr import pandas as pd # pip install xlrd>=2.0.1 openpyxl pandas import os import tempfile def Excelから列を削除する関数(ファイル): エンジン = 'xlrd' if ファイル.name.endswith('.xls') else 'openpyxl'# .xlsx(より現代的)ならopenpyxl df = pd.read_excel(ファイル.name, engine=エンジン) 上部1行削除済df = df.drop(index=[0]).reset_index(drop=True) 全列 = 上部1行削除済df.columns.tolist() 削除する列 = 全列[:7]+全列[8:10]+全列[14:] 列削除済df = 上部1行削除済df.drop(columns=削除する列) 最初の列 = 列削除済df.columns[0] ソート済df = 列削除済df.sort_values(by=最初の列) # 一時ファイルとして保存 出力場所 = tempfile.gettempdir() 基礎名称 = os.path.basename(ファイル.name) name_parts = os.path.splitext(基礎名称) 出力名称 = f"{name_parts[0]}_処理済.xlsx" 出力パス = os.path.join(出力場所, 出力名称) ソート済df.to_excel(出力パス, index=False,header=False, engine='openpyxl')# header=Falseを指定して列名を出力しない return 出力パス with gr.Blocks(title="Excel 処理ツール") as app: gr.Markdown("# Excel 処理ツール") gr.Markdown(""" ファイルをドラッグすると 特定の列と上部1行を削除した後、最初の列でデータをソート""") with gr.Row(): with gr.Column(): 入力ファイル = gr.File(label="Excelファイル(.xls/.xlsx)") with gr.Column(): 出力ファイル = gr.File(label="処理済みファイル(.xlsx)") 入力ファイル.upload( fn=Excelから列を削除する関数, inputs=[入力ファイル], outputs=[出力ファイル] ) if __name__ == "__main__": app.launch()