excel / app.py
raomyousaf's picture
Create app.py
6546107 verified
Raw
History Blame Contribute Delete
2.75 kB
import streamlit as st
import pandas as pd
from transformers import pipeline
import io
# Initialize the Hugging Face model pipeline (e.g., sentiment analysis, question answering, etc.)
# Replace this with the model that fits your query processing needs
model = pipeline("text-classification") # Example for a text classification task
def process_query(query, dataframe):
"""
This function processes the user query with the Hugging Face model and returns the result.
You can adapt this based on your specific query processing.
"""
# For simplicity, let's assume we're running text classification on a text column in the dataframe.
# This part will change depending on your use case.
results = []
for index, row in dataframe.iterrows():
result = model(row['text_column']) # Example, modify 'text_column' to your actual column name
results.append(result[0]['label'])
dataframe['query_result'] = results
return dataframe
def handle_file_upload():
"""
Function to handle multiple file uploads.
"""
uploaded_files = st.file_uploader("Upload multiple Excel files", type=["xlsx"], accept_multiple_files=True)
if uploaded_files:
return uploaded_files
return None
def main():
st.title("Excel Query Processing Application")
# Step 1: File upload section
uploaded_files = handle_file_upload()
if uploaded_files:
# Step 2: Process each uploaded Excel file
for file in uploaded_files:
# Read the Excel file into a DataFrame
df = pd.read_excel(file)
st.write(f"Data from {file.name}:")
st.write(df.head()) # Show a preview of the data
# Step 3: Get user query input
query = st.text_input("Enter your query to process the file:", "")
if query:
# Step 4: Process the query on the data
result_df = process_query(query, df)
# Step 5: Display the processed result
st.write("Processed Result:")
st.write(result_df.head()) # Show a preview of the result
# Step 6: Provide an option to download the processed file
output = io.BytesIO()
result_df.to_excel(output, index=False)
output.seek(0)
st.download_button(
label="Download Processed Excel",
data=output,
file_name=f"processed_{file.name}",
mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
if __name__ == "__main__":
main()