import gradio as gr from gradio_spreadsheetcomponent import SpreadsheetComponent from dotenv import load_dotenv import os import pandas as pd def answer_question(file, question): if not file or not question: return "Please upload a file and enter a question." # Load the spreadsheet data df = pd.read_excel(file.name) # Create a SpreadsheetComponent instance spreadsheet = SpreadsheetComponent(value=df) # Use the component to answer the question return spreadsheet.answer_question(question) with gr.Blocks() as demo: gr.Markdown("# Spreadsheet Question Answering") with gr.Row(): file_input = gr.File(label="Upload Spreadsheet", file_types=[".xlsx"]) question_input = gr.Textbox(label="Ask a Question") answer_output = gr.Textbox(label="Answer", interactive=False, lines=4) submit_button = gr.Button("Submit") submit_button.click(answer_question, inputs=[file_input, question_input], outputs=answer_output) if __name__ == "__main__": demo.launch()