JaganathC's picture
Update app.py
1bccc59 verified
import streamlit as st
import pandas as pd
import re
from io import BytesIO
st.set_page_config(page_title="XML to Excel Converter", layout="wide")
st.title("📄 XML to Excel Converter")
st.write("Extract **ErrorCode** and **Message** from XML text and export to Excel.")
# --- Text Area Container ---
xml_input = st.text_area(
label="XML Data",
height=300,
placeholder="Paste your XML exception data here..."
)
# --- Button ---
if st.button("Generate Excel Data"):
if not xml_input.strip():
st.warning("⚠️ Please paste XML data before generating Excel.")
else:
# Regex to extract ErrorCode and Message values inside quotes
pattern = r'ErrorCode="(.*?)".*?Message="(.*?)"'
matches = re.findall(pattern, xml_input, re.DOTALL)
if not matches:
st.error("❌ No valid ErrorCode and Message found in the XML.")
else:
# Create DataFrame
df = pd.DataFrame(matches, columns=["ErrorCode", "Message"])
# Display extracted data
st.success("✅ Data extracted successfully!")
st.dataframe(df, use_container_width=True)
# Convert to Excel
output = BytesIO()
with pd.ExcelWriter(output, engine="openpyxl") as writer:
df.to_excel(writer, index=False, sheet_name="Errors")
# Download Button
st.download_button(
label="⬇️ Download Excel",
data=output.getvalue(),
file_name="ErrorCodes.xlsx",
mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)