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 NameTypeExplanation

*args

Union[pd.DataFrame, str]

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

import_folder

Optional[str]

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

Optional[List[str]]

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

Optional[List[Callable]]

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

importers

Optional[List[Callable]]

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

editors

Optional[List[Callable]]

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

code_options

Optional[CodeOptions]

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

column_definitions

Optional[List[ColumnDefinitions]]=None

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

key

Optional[str]

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

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

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)

Last updated