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


Component API

from mitosheet.streamlit.v1 import 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,
) -> Tuple[Dict[str, pd.DataFrame], str]
Argument NameTypeExplanation


Union[pd.DataFrame, str]

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



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.



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.



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



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



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



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



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



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



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


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.



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

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

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


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

Last updated