RameshJ commited on
Commit
d4d78d9
Β·
verified Β·
1 Parent(s): 32966d2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -29
app.py CHANGED
@@ -63,33 +63,40 @@ elif page == "Invoices to Table":
63
 
64
  if st.button("🧠 Parse Table"):
65
  try:
66
- # Step 1: Run parsing only once, store in session_state
67
- if "parsed_table_df" not in st.session_state:
68
- try:
69
- df = extract_markdown_table(table_md)
70
- st.session_state.parsed_table_df = df
71
- except Exception as e:
72
- st.error(f"❌ Table parsing failed: {e}")
73
- # Step 2: Use session state for editing
74
- if "parsed_table_df" in st.session_state:
75
- st.subheader("✏️ Editable Parsed Table")
76
- edited_df = st.data_editor(
77
- st.session_state.parsed_table_df,
78
- num_rows="dynamic",
79
- use_container_width=True,
80
- key="invoice_edit"
81
- )
82
-
83
- # Download as Excel
84
- excel_buffer = io.BytesIO()
85
- edited_df.to_excel(excel_buffer, index=False)
86
- excel_buffer.seek(0)
87
-
88
- st.download_button(
89
- label="πŸ“₯ Download Table as Excel",
90
- data=excel_buffer,
91
- file_name="invoice_table.xlsx",
92
- mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
93
- )
94
  except Exception as e:
95
- st.error(f"❌ {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
  if st.button("🧠 Parse Table"):
65
  try:
66
+ df = extract_markdown_table(table_md)
67
+
68
+ # βœ… Store it freshly (overwrite old one if it exists)
69
+ st.session_state["parsed_table_df"] = df
70
+ st.success("βœ… Table parsed successfully. You can now edit it.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  except Exception as e:
72
+ st.error(f"❌ Parsing failed: {e}")
73
+
74
+ if "parsed_table_df" in st.session_state:
75
+ st.subheader("✏️ Editable Parsed Table")
76
+
77
+ edited_df = st.data_editor(
78
+ st.session_state["parsed_table_df"],
79
+ num_rows="dynamic",
80
+ use_container_width=True,
81
+ key="invoice_editor"
82
+ )
83
+
84
+ # Update session state only after editing
85
+ st.session_state["parsed_table_df"] = edited_df
86
+
87
+ # Export options
88
+ import io
89
+ buffer = io.BytesIO()
90
+ edited_df.to_excel(buffer, index=False)
91
+ buffer.seek(0)
92
+
93
+ st.download_button(
94
+ label="πŸ“₯ Download Edited Table as Excel",
95
+ data=buffer,
96
+ file_name="edited_invoice_table.xlsx",
97
+ mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
98
+ )
99
+
100
+ if st.button("πŸ”„ Reset Table"):
101
+ st.session_state.pop("parsed_table_df", None)
102
+ st.success("Table has been cleared. You can parse again.")