- Install the package into your environment:
pip install streamlit-report
- Call the report class in your program:
from streamlit_report import report
r = report.Report()
- For supported functions, replace st. with r. and the Report class will call the streamlit function and write to your report simultaneously.
- Call the download method to add a button to toggle report generation and download:
r.download()
- Run your dashboard, click the Generate Report? button, navigate to each page, activate the content you'd like to add to your report, and click the Download! button when done. NOTE: the report overwrites a page's content each time you visit it on the dashboard.
This module creates a streamlit page using standard streamlit commands and, when prompted, generates an html report that mirrors the dashboard's interactive contents. The final report stores the results that are displayed on the page and lives on as a static file that can be viewed without connecting to the dashboard.
Styles can be modified by changing the styles.html file. Current styles were based off references found on https://www.w3schools.com/.
The below features are simplified representations of what the dashboard presents. Streamlit has features that are not and may never be implemented by this library. The purpose is to streamline a simple and static reporting mechanism without having to write additional code.
- updated default style.html file to improve dataframe display on reports
- removed height & width functionality from r.dataframe commands
- This can now be specified globally in the dataframe-container & dataframe CSS
- removed dependency version requirements on imported modules
- updated support to account for migrated get_pages function in streamlit Version 1.44
- fixed bug in multiselect code
- added support for navigation based multipage applications
- added some minor QoL updates via type hints
- added st.date_input support
- added st.multiselect support
- added st.text, st.text_area, st.text_input support
- added st.slider support for range value selections
- Restructured repository layout
- Reformatted the README.md file
- Removed demo and related programs from the main branch
- They still exist on the demo branch and are primarily used for the streamlit cloud demo page
- added functions removed from st_pages to restore page name detection
- moved demo program and data to the examples folder
Added basic functionality including multipage support, altair graphs, and some input data fields.
- streamlit.write support for markdown and basic text
- streamlit.markdown support -- allow_unsafe_html = True will write custom html code to the report
- streamlit.tabs support using with generator functions
- streamlit.sidebar support using with generator functions
- collapsable sidebar
- streamlit.altair_chart support
- streamlit_report.Report.ignore flag to temporarily suppress writing to the report file
- streamlit.dataframe support, displaying a polars or pandas dataframe in a sized window
- streamlit.selectbox support, displaying the name of the item selected during report generation
- streamlit.slider support for single value slider selections
- report generation and download button for single page reports
- multi-page app support
- creation of single report for multi-page applications
- option to specify the default page order that a report generates in
- Create distribution file
- st.date_input
- st.multiselect
- st.text_input
- st.text_area
- st.columns
- st.text
- button to reveal the collapsed sidebar
- streamlit.slider support for multipoint values selections
- improved style defaults
- option to write to temporary files instead of storing the html code in memory
- st.form
- st.image
- st.logo
- st.page_link
- st.navigation
- resizable sidebar
- streamlit.write support for list, dictionary types
- option to only replace page content when a button is pressed
- pdf report option