Spaces:
Sleeping
Sleeping
| 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() |