| import io | |
| import time | |
| import pandas as pd | |
| import streamlit as st | |
| def convert_dfs(dfs: list[pd.DataFrame], sheet_names: list[str]) -> bytes: | |
| # IMPORTANT: Cache the conversion to prevent computation on every rerun | |
| # Create a BytesIO object | |
| bytes_io = io.BytesIO() | |
| # Write the dataframes to the BytesIO object | |
| with pd.ExcelWriter(bytes_io, engine="xlsxwriter") as writer: | |
| for df, sheet_name in zip(dfs, sheet_names): | |
| df.to_excel(writer, sheet_name=sheet_name, index=False) | |
| # Get the bytes data | |
| bytes_data = bytes_io.getvalue() | |
| # Close the BytesIO object | |
| bytes_io.close() | |
| return bytes_data | |
| def save_dataframe(df: pd.DataFrame, sheet_name: str): | |
| """ | |
| Save the dataframe to a csv file. | |
| Args: | |
| df (pd.DataFrame): The dataframe to save. | |
| sheet_name (str): The name of the sheet. | |
| """ | |
| df.to_csv(f"data2/{sheet_name}_{time.time()}.csv", index=False) | |