nithin81 commited on
Commit
84bd3e9
·
verified ·
1 Parent(s): d5350ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -25
app.py CHANGED
@@ -84,7 +84,7 @@ if uploaded_file is not None:
84
 
85
  # Optionally reset the index if required
86
  table_df.reset_index(drop=True, inplace=True)
87
-
88
  st.session_state.tables.append(table_df)
89
 
90
  st.session_state.processed = True
@@ -95,17 +95,10 @@ default_columns = ['Invoice No', 'Invoice Date', 'Customer Name']
95
  # Sidebar for table and key-value pair selection
96
  if st.session_state.processed:
97
  if not st.session_state.kv_df.empty:
98
- # st.sidebar.download_button(
99
- # label="Download Key-Value Pairs as CSV",
100
- # data=st.session_state.kv_df.to_csv(index=False, header=False).encode('utf-8'),
101
- # file_name="kv_df.csv",
102
- # mime='text/csv',
103
- # )
104
- pass
105
  else:
106
  st.sidebar.write("No Key-Value Pairs found in document.")
107
 
108
-
109
  if st.session_state.tables:
110
  # Display available tables for selection in the sidebar
111
  table_options = ["Select"] + [f"Table {i + 1}" for i in range(len(st.session_state.tables))]
@@ -121,7 +114,7 @@ if st.session_state.processed:
121
  # Add default columns to the left side of the table with NaN values initially
122
  for col in default_columns:
123
  selected_table_df[col] = np.nan
124
-
125
  # Move default columns to the left
126
  selected_table_df = selected_table_df[[*default_columns, *selected_table_df.columns[:-len(default_columns)]]]
127
 
@@ -157,22 +150,37 @@ if st.session_state.processed:
157
 
158
  st.write(f"Selected Table {selected_table_index + 1} with Key-Value Pairs Added:")
159
 
160
- st.dataframe(selected_table_df)
161
- st.download_button(
162
- label=f"Download Table {selected_table_index + 1} as CSV",
163
- data=selected_table_df.to_csv(index=False).encode('utf-8'),
164
- file_name=f"table_with_kv_{selected_table_index + 1}.csv",
165
- mime='text/csv',
 
 
166
  )
167
- else:
168
- st.write(f"Selected Table {selected_table_index + 1}:")
169
- st.dataframe(selected_table_df)
170
- st.download_button(
171
- label=f"Download Table {selected_table_index + 1} as CSV",
172
- data=selected_table_df.to_csv(index=False).encode('utf-8'),
173
- file_name=f"table{selected_table_index + 1}.csv",
174
- mime='text/csv',
175
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  else:
177
  st.sidebar.write("No tables found in the document.")
178
 
 
84
 
85
  # Optionally reset the index if required
86
  table_df.reset_index(drop=True, inplace=True)
87
+
88
  st.session_state.tables.append(table_df)
89
 
90
  st.session_state.processed = True
 
95
  # Sidebar for table and key-value pair selection
96
  if st.session_state.processed:
97
  if not st.session_state.kv_df.empty:
98
+ st.sidebar.write("Key-Value Pairs found.")
 
 
 
 
 
 
99
  else:
100
  st.sidebar.write("No Key-Value Pairs found in document.")
101
 
 
102
  if st.session_state.tables:
103
  # Display available tables for selection in the sidebar
104
  table_options = ["Select"] + [f"Table {i + 1}" for i in range(len(st.session_state.tables))]
 
114
  # Add default columns to the left side of the table with NaN values initially
115
  for col in default_columns:
116
  selected_table_df[col] = np.nan
117
+
118
  # Move default columns to the left
119
  selected_table_df = selected_table_df[[*default_columns, *selected_table_df.columns[:-len(default_columns)]]]
120
 
 
150
 
151
  st.write(f"Selected Table {selected_table_index + 1} with Key-Value Pairs Added:")
152
 
153
+ # st.dataframe(selected_table_df)
154
+
155
+ # Allow row and column selection for deletion
156
+ st.sidebar.subheader("Manage Table")
157
+ # Delete columns
158
+ if st.sidebar.checkbox("Delete Columns"):
159
+ cols_to_delete = st.sidebar.multiselect(
160
+ "Select Columns to Delete", list(selected_table_df.columns)
161
  )
162
+ if st.sidebar.button("Remove Columns"):
163
+ st.session_state.tables[selected_table_index].drop(columns=cols_to_delete, inplace=True)
164
+
165
+ # Delete rows
166
+ if st.sidebar.checkbox("Delete Rows"):
167
+ row_indices = st.sidebar.multiselect(
168
+ "Select Rows to Delete", selected_table_df.index.tolist()
169
+ )
170
+ if st.sidebar.button("Remove Rows"):
171
+ st.session_state.tables[selected_table_index].drop(index=row_indices, inplace=True)
172
+
173
+ # Show the updated table
174
+ # st.write(f"Updated Table {selected_table_index + 1}:")
175
+ st.dataframe(selected_table_df)
176
+
177
+ # Download updated table
178
+ st.download_button(
179
+ label=f"Download Updated Table {selected_table_index + 1} as CSV",
180
+ data=selected_table_df.to_csv(index=False).encode('utf-8'),
181
+ file_name=f"updated_table_{selected_table_index + 1}.csv",
182
+ mime='text/csv',
183
+ )
184
  else:
185
  st.sidebar.write("No tables found in the document.")
186