Mito
Mito for Streamlit
  • Mito Documentation
  • Getting Started
    • Installing Mito
      • Fixing Common Install Errors
      • Installing Mito in a Docker Container
      • Installing Mito for Streamlit
      • Installing Mito for Dash
      • Installing Mito in a Jupyter Notebook Directly
      • Installing Mito in Vertex AI
      • Setting Up a Virtual Environment
  • Data Copilot
    • Data Copilot Core Concepts
    • Agent
    • Chat
    • Autocomplete
    • Smart Debugging
    • Configuration Options
    • AI Data Usage FAQ
  • Apps (Beta)
    • Mito Apps
  • Mito Spreadsheet
    • Core Concepts
    • Creating a Mitosheet
      • Open Existing Virtual Environments
    • Importing Data
      • Importing CSV Files
      • Importing from Excel Files
      • Importing Dataframes
      • Importing from a remote drive
      • Import: Generated UI from any Python Function
      • Importing from other sources
    • Graphing
      • Graph Creation
      • Graph Styling
      • Graph Export
    • Pivoting/Group By
    • Filter
      • Filter By Condition
      • Filter By Value
    • Mito AI
    • Summary Statistics
    • Type Changes
    • Spreadsheet Formulas
      • Custom Spreadsheet Functions
      • Formula Reference
      • Using VLOOKUP
    • Editing Individual Cells
    • Combining Dataframes
      • Merge (horizontal)
      • Concatenate (horizontal)
      • Anti-merge (unique)
    • Sort Data
    • Split Text to Columns
    • Deleting Columns
    • Deleting Rows
    • Column Headers
      • Editing Column Headers
      • Promote Row to Header
    • Deduplicate
    • Fill NaN Values
    • Transpose
    • Reset Index
    • Unpivot a Dataframe (Melt)
    • Formatting
      • Column Formatting
      • Dataframe Colors
      • Conditional Formatting
    • Exporting Data
      • Download as CSV
      • Download as Excel
      • Generate code to create Excel and CSV reports
    • Using the Generated Code
      • Turn generated code into functions
    • Changing Imported Data
    • Code Snippets
    • Custom Editors: Autogenerate UI from Any Function
    • Find and Replace
    • Bulk column header edits
    • Code Options
    • Scheduling your Automation
    • Keyboard Shortcuts
    • Upgrading Mito
    • Enterprise Logging
  • Mito for Streamlit
    • Getting Started with Mito for Streamlit
    • Streamlit Overview
    • Create a Mito for Streamlit App
    • API Reference
      • Understanding import_folder
      • RunnableAnalysis class
      • Column Definitions
    • Streamlit App Gallery
    • Experienced Streamlit Users
    • Common Design Patterns
      • Deploying Mito for Streamlit in a Docker Image
      • Using Mito for Final Mile Data Cleaning
  • Mito for Dash
    • Getting Started
    • Dash Overview
    • Your First Dash App with Mito
    • Mito vs. Other Dash Components
    • API Reference
      • Understanding import_folder
    • Dash App Gallery
    • Common Design Patterns
      • Refresh Sheet Data Periodically
      • Change Sheet Data from a Select
      • Filter Other Elements to Data Selected in Mito
      • Graph New Data after Edits to Mito
      • Set Mito Spreadsheet Theme
  • Tutorials
    • Pass a dataframe into Mito
    • Create a line chart of time series data
    • Delete Columns with Missing Values
    • Split a column on delimiter
    • Rerun analysis on new data
    • Calculate the difference between rows
    • Calculate each cell's percent total of column
    • Import multiple tables from one Excel sheet
    • Share Mito Spreadsheets Across Users
  • Misc
    • Release Notes
      • April 15 - Now Streaming (0.1.18)
      • March 21 - Smarter, Faster, Stronger Agents
      • February 25 - Agent Mode QoL Improvements
      • February 18 - Mito Agents
      • January 2nd - Inline Completions Arrive
      • December 6th - Smarter Workflow
      • November 27th - @ Mentions, Mito AI Server
      • November 4th, 2024 - Hello Mito AI
      • October 8, 2024 - JupyterLab 4
      • Aug 29th, 2024
      • June 12, 2024
      • March 19, 2024
      • March 13th, 2024
      • February 12th, 2024: Graphing Improvements
      • January 25th, 2024
      • January 5th, 2023: Keyboard Shortcuts
      • December 6, 2023: New Context Menu
      • November 28, 2023: Mito's New Toolbar
      • November 7, 2023: Multiplayer Dash
      • October 23, 2023: RunnableAnalysis class
      • October 16, 2023: Mito for Dash, Custom Editors
      • September 29, 2023: VLOOKUP and Find and Replace!
      • September 7, 2023
      • August 2, 2023: Mito for Streamlit!
      • July 10, 2023
      • May 31, 2023: Mito AI Recon
      • May 19, 2023: Mito AI Chat!
      • April 27, 2023: Generate Functions, Performance improvements, bulk column header transformations
      • April 18, 2023: Cell Editor Improvements, BYO Large Language Model, and more
      • April 10, 2023: AI Access, Excel-like Cell Editor, Performance Improvements
      • April 5, 2023: Range formulas, Pandas 2.0, Snowflake Views
      • March 29, 2023: Excel Range Import Improvements
      • March 14, 2023: Mito AI, Public Interface Versioning
      • February 28, 2023: In-place Pivot Errors
      • February 7, 2023: Excel-like Formulas, Snowflake Import
      • January 23, 2023: Excel range importing
      • January 8, 2023: Custom Code snippets
      • December 26, 2022: Code snippets and bug fixes
      • December 12, 2022: Group Dates in Pivot Tables, Reduced Dependencies
      • November 15, 2022: Filter in Pivot
      • November 9, 2022: Import and Enterprise Config
      • October 31, 2022: Replay Analysis Improvements
      • Old Release Notes
      • August 10, 2023: Export Formatting to Excel
    • Mito Enterprise Features
    • FAQ
    • Terms of Service
    • Privacy Policy
  • Mito
Powered by GitBook

© Mito

On this page
  • The Spreadsheet Component
  • Component API
  • Return Types
  • Examples

Was this helpful?

  1. Mito for Streamlit

API Reference

The Spreadsheet Component

To display the Mito spreadsheet in a Streamlit application, use the following code:

from mitosheet.streamlit.v1 import spreadsheet

# ... rest of your streamlit app

spreadsheet()

Component API

from mitosheet.streamlit.v1 import spreadsheet

spreadsheet(
    *args: , 
    import_folder: Optional[str]=None,
    df_names: Optional[List[str]]=None,
    sheet_functions: Optional[List[Callable]]=None, 
    importers: Optional[List[Callable]]=None, 
    code_options: Optional[CodeOptions]=None,
    column_definitions: Optional[List[ColumnDefinitions]]=None,
    return_type: Options[str]='default',
    default_editing_mode: Optional[Literal['cell', 'column']]=None,
    height: Optional[str]=None,
    key=None
) -> Tuple[Dict[str, pd.DataFrame], str]
Argument Name
Type
Explanation

*args

Pass any number of Pandas dataframes or paths to CSV files that will be displayed by in the Mito spreadsheet.

import_folder

A file path to a folder where users can import data from. Any subfolders will be available for navigation and importing within the Mito file browser.

df_names

if you pass Pandas dataframes through the args, then optionally include the names of these dataframes in this list. This makes Mito generated code more correct.

sheet_functions

importers

editors

code_options

Optional[CodeOptions]

column_definitions

Optional[List[ColumnDefinitions]]=None

key

An optional key that uniquely identifies this component. Necessary if you have multiple Mito spreadsheet displaying the same data.

return_type

Optional[str]

An optional string to identify what information you want from the spreadsheet function. See below for the options.

default_editing_mode

Optional[Literal['cell', 'column']]

Sets default formula editing behavior. Formulas will either default to editing the entire column, or the specific cell being edited. If not set, defaults to editing the entire column.

height

Optional[str]

An optional string to specify the height in pixels that you want to use for the mitosheet. ie: "900px"

Return Types

By default, the spreadsheet component returns:

new_dfs, code = spreadsheet()
  • new_dfs: a Python dictionary from dataframe name to dataframe object. There will be one entry for each tab in the Mito spreadsheet.

  • code: a string that corresponds to the edits made by the user of the course of the Mito analysis.

MitoAnalysis Return Type

analysis = spreadsheet(return_type='analysis')

Other return types

  • selection: the current selected cells in the mitosheet

  • default_list: similar to the default return type, but the dataframes are a list instead of a dictionary

  • dfs_dict similar to the default return type, but only returns the dict without the code

  • code: similar to the default return type, but only return the code

  • dfs_list: returns a list of the dataframes generated by the analysis

Examples

Below are examples of common uses of the Mito spreadsheet component in a streamlit application.

Empty Mito Spreadsheet

from mitosheet.streamlit.v1 import spreadsheet

# Render an empty spreadsheet that allows users to import from the ./data folder
new_dfs, _ = spreadsheet(import_folder='./data')

Display a Dataframe for Editing

import pandas as pd
from mitosheet.streamlit.v1 import spreadsheet

# Pass a single dataframe for editing
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
new_dfs, _ = spreadsheet(df, df_names=['df'])
new_df = list(new_dfs.values())[0]

# Note that multiple dataframes can be passed as well
# and each will appear as a tab in the Mito spreadsheet
new_dfs, _ = spreadsheet(df1, df2, df_names=['df1', 'df2'])

Display a CSV file for Editing

from mitosheet.streamlit.v1 import spreadsheet

# Mito will automatically read this file into a dataframe
# and display it as a sheet tab
dfs, _ = spreadsheet('path-to-file.csv')

Displaying Mito generated code

from mitosheet.streamlit.v1 import spreadsheet

# The second return value is Mito generated code
new_dfs, code = spreadsheet('path-to-file.csv')

# Display the code
st.code(code)

PreviousCreate a Mito for Streamlit AppNextUnderstanding import_folder

Last updated 1 year ago

Was this helpful?

Pass functions that are available as spreadsheet functions in the Mito spreadsheet. (Mito Enterprise)

Pass custom data importers that get an auto-generated UI. (Mito Enterprise)

Pass Python functions that edit a dataframe to get an auto-generated Ui. (Mito Enterprise)

Pass a CodeOptions object to specify how the code should be generated. (Mito Enterprise)

An optional list of ColumnDefinitions to specify conditional formats for a set of columns. See below for usage. . (Mito Enterprise)

To easily rerun your analysis on new data, return the class through the return_type parameter:

Union[pd.DataFrame, str]
Optional[str]
Optional[List[str]]
Optional[List[Callable]]
Optional[List[Callable]]
Optional[List[Callable]]
Optional[str]
MitoAnalysis
See more here.
See more here.
See more here.
See more here.
See more here