|
import streamlit as st |
|
import pandas as pd |
|
import datetime |
|
|
|
def save_text_as_file(text, file_type): |
|
current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") |
|
file_name = f"text_file_{current_time}.{file_type}" |
|
with open(file_name, "w") as file: |
|
file.write(text) |
|
st.success(f"Text saved as {file_name}") |
|
|
|
def save_csv_as_excel(text): |
|
try: |
|
df = pd.read_csv(pd.compat.StringIO(text), header=None) |
|
if df.iloc[0].dtype == object: |
|
header = 0 |
|
file_name = f"csv_with_header_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx" |
|
else: |
|
header = None |
|
file_name = f"csv_without_header_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx" |
|
df.to_excel(file_name, index=False, header=header) |
|
st.success(f"CSV data saved as {file_name}") |
|
except pd.errors.EmptyDataError: |
|
st.error("The pasted text does not contain valid CSV data.") |
|
|
|
def create_demo_excel_file(): |
|
data = { |
|
"Name": ["John", "Alice", "Bob"], |
|
"Age": [25, 30, 35], |
|
"City": ["New York", "London", "Paris"] |
|
} |
|
df = pd.DataFrame(data) |
|
file_name = "demo_excel_file.xlsx" |
|
df.to_excel(file_name, index=False) |
|
st.success(f"Demo Excel file created: {file_name}") |
|
|
|
def main(): |
|
st.title("AI UI for Text Processing") |
|
text_input = st.text_area("Paste your text here") |
|
|
|
if st.button("Process Text"): |
|
if text_input.strip() == "": |
|
st.warning("Please paste some text.") |
|
else: |
|
if "," in text_input or "\t" in text_input: |
|
save_csv_as_excel(text_input) |
|
elif text_input.startswith("#") or text_input.startswith("- "): |
|
save_text_as_file(text_input, "md") |
|
elif "def" in text_input or "import" in text_input: |
|
save_text_as_file(text_input, "py") |
|
else: |
|
save_text_as_file(text_input, "txt") |
|
|
|
if st.button("Create Demo Excel File"): |
|
create_demo_excel_file() |
|
|
|
if __name__ == "__main__": |
|
main() |