baqarhussain's picture
Update app.py
623a2be verified
Raw
History Blame Contribute Delete
1.96 kB
import streamlit as st
from docx import Document
import pandas as pd
# Function to parse the Word file
def parse_word_file(file):
document = Document(file)
data = []
for paragraph in document.paragraphs:
if "Name:" in paragraph.text and "Status:" in paragraph.text:
parts = paragraph.text.split(",")
name_part = next((part for part in parts if "Name:" in part), None)
status_part = next((part for part in parts if "Status:" in part), None)
if name_part and status_part:
name = name_part.split(":")[1].strip()
status = status_part.split(":")[1].strip()
data.append({"Name": name, "Status": status})
return data
# Streamlit app
st.title("Display File Data with Filtering")
st.write("Upload a Word file containing `Name` and `Status` data to display it in separate columns.")
# File uploader
uploaded_file = st.file_uploader("Upload a Word file (.docx)", type="docx")
if uploaded_file:
try:
# Parse the file
data = parse_word_file(uploaded_file)
if data:
# Convert to DataFrame for display
df = pd.DataFrame(data)
# Display the data
st.write("### Full Data")
st.dataframe(df)
# Add checkboxes for filtering
st.write("### Filter Data by Name")
selected_names = st.multiselect("Select names to display", options=df["Name"].unique())
# Filter the DataFrame based on selected names
if selected_names:
filtered_df = df[df["Name"].isin(selected_names)]
st.write("### Filtered Data")
st.dataframe(filtered_df)
else:
st.write("No names selected.")
else:
st.error("No valid Name-Status data found in the file.")
except Exception as e:
st.error(f"An error occurred: {e}")