Skip to main content
`Ctrl`+`K`

# pandas.io.formats.style.Styler.to_html

Styler.to_html(buf=None, *, table_uuid=None, table_attributes=None, sparse_index=None, sparse_columns=None, bold_headers=False, caption=None, max_rows=None, max_columns=None, encoding=None, doctype_html=False, exclude_styles=False, **kwargs)

  Write Styler to a file, buffer or string in HTML-CSS format.

  The output includes `<style>` and `<table>` HTML elements with inline CSS, suitable for embedding in web pages or Jupyter notebooks. Use `doctype_html=True` to produce a fully structured HTML document.

  Parameters:
    buf str, path object, file-like object, optional

      String, path object (implementing `os.PathLike[str]`), or file-like object implementing a string `write()` function. If `None`, the result is returned as a string.

    table_uuid str, optional

      Id attribute assigned to the <table> HTML element in the format:

      `<table id="T_<table_uuid>" ..>`

      If not given uses Styler’s initially assigned value.

    table_attributes str, optional

      Attributes to assign within the <table> HTML element in the format:

      `<table .. <table_attributes> >`

      If not given defaults to Styler’s preexisting value.

    sparse_index bool, optional

      Whether to sparsify the display of a hierarchical index. Setting to False will display each explicit level element in a hierarchical key for each row. Defaults to `pandas.options.styler.sparse.index` value.

    sparse_columns bool, optional

      Whether to sparsify the display of a hierarchical index. Setting to False will display each explicit level element in a hierarchical key for each column. Defaults to `pandas.options.styler.sparse.columns` value.

    bold_headers bool, optional

      Adds “font-weight: bold;” as a CSS property to table style header cells.

    caption str, optional

      Set, or overwrite, the caption on Styler before rendering.

    max_rows int, optional

      The maximum number of rows that will be rendered. Defaults to `pandas.options.styler.render.max_rows/max_columns`.

    max_columns int, optional

      The maximum number of columns that will be rendered. Defaults to `pandas.options.styler.render.max_columns`, which is None.

      Rows and columns may be reduced if the number of total elements is large. This value is set to `pandas.options.styler.render.max_elements`, which is 262144 (18 bit browser rendering).

    encoding str, optional

      Character encoding setting for file output (and meta tags if available). Defaults to `pandas.options.styler.render.encoding` value of “utf-8”.

    doctype_html bool, default False

      Whether to output a fully structured HTML file including all HTML elements, or just the core `<style>` and `<table>` elements.

    exclude_styles bool, default False

      Whether to include the `<style>` element and all associated element `class` and `id` identifiers, or solely the `<table>` element without styling identifiers.

    **kwargs

      Any additional keyword arguments are passed through to the jinja2 `self.template.render` process. This is useful when you need to provide additional variables for a custom template.

  Returns:
    str or None

      If buf is None, returns the result as a string. Otherwise returns None.

  See also

  `DataFrame.to_html`

    Write a DataFrame to a file, buffer or string in HTML format.

  Examples

      >>> df = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
      >>> print(df.style.to_html())
      <style type="text/css">
      </style>
      <table id="T_1e78e">
        <thead>
          <tr>
            <th class="blank level0" >&nbsp;</th>
            <th id="T_1e78e_level0_col0" class="col_heading level0 col0" >A</th>
            <th id="T_1e78e_level0_col1" class="col_heading level0 col1" >B</th>
          </tr>
      ...