> ## Documentation Index
> Fetch the complete documentation index at: https://jetxl.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Sheet appearance

> Set gridlines, zoom, tab colors, hidden rows and direction

Presentation settings that apply to the whole sheet rather than any particular cell.

## Gridlines and zoom

<ParamField path="gridlines_visible" type="bool" default="True">
  Hiding gridlines is the single biggest visual difference between a data dump and a designed report.
</ParamField>

<ParamField path="zoom_scale" type="int">
  Opening zoom, 10 to 400.
</ParamField>

```python theme={null}
jet.write_sheet_arrow(
    df.to_arrow(), "clean.xlsx",
    gridlines_visible=False,
    zoom_scale=120,
)
```

## Tab colors

<ParamField path="tab_color" type="str">
  Hex color on the sheet tab.
</ParamField>

| Color  | Value    |
| ------ | -------- |
| Blue   | `4472C4` |
| Green  | `00B050` |
| Red    | `FF0000` |
| Orange | `FFC000` |
| Purple | `7030A0` |

<Tip>
  In a multi-sheet workbook, color by role rather than decoratively. Inputs one color, outputs another. It makes a twelve-tab workbook navigable.
</Tip>

## Hiding rows and columns

<ParamField path="hidden_columns" type="list[int]">0-based column indices.</ParamField>
<ParamField path="hidden_rows" type="list[int]">Row indices.</ParamField>

```python theme={null}
jet.write_sheet_arrow(
    df.to_arrow(), "report.xlsx",
    hidden_columns=[2, 4],
    hidden_rows=[3],
)
```

<Warning>
  Hidden isn't removed. The values stay in the file and any recipient can unhide them in two clicks. Never hide data you wouldn't be willing to send. Drop the column from the DataFrame instead.
</Warning>

## Right-to-left

<ParamField path="right_to_left" type="bool" default="False">
  Flows the sheet from right to left, for Arabic, Hebrew, Persian and similar.
</ParamField>

```python theme={null}
df = pl.DataFrame({"שם": ["אליס", "בוב"], "גיל": [25, 30]})

jet.write_sheet_arrow(df.to_arrow(), "hebrew.xlsx", right_to_left=True)
```

<Note>
  This affects layout direction only. Column A moves to the right edge, and Excel renders the text itself according to its own content.
</Note>

## A composed look

```python theme={null}
jet.write_sheet_arrow(
    df.to_arrow(), "dashboard.xlsx",
    sheet_name="Performance",
    gridlines_visible=False,
    zoom_scale=120,
    tab_color="0070C0",
    default_row_height=20.0,
    styled_headers=True,
    freeze_rows=1,
    auto_width=True,
)
```
