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

# Sheet Options

> Sheet-level settings that control error display, data location, security, import screens, Excel formatting, and sheet transfer.

Sheet options control how the importer behaves for every upload against a sheet: what users see on each screen, where their data is stored, and how Excel files are interpreted.

<Note>
  These settings are also documented by the screen they belong to, under **Sheet Settings**: [File Upload](/sheet-settings/import-steps/file-upload), [Map Columns](/sheet-settings/import-steps/map-columns), [Verify Data](/sheet-settings/import-steps/verify-data), [Results](/sheet-settings/import-steps/results), [Display](/sheet-settings/display), and [Security](/sheet-settings/security).
</Note>

| Setting | What it does |
| - | - |
| **Data, privacy, and security** | |
| [Server & data location](#server-and-data-location) | Store user data in the US or Europe (Germany) |
| [File delete policy](#file-delete-policy) | Store uploaded files for a month, or not at all |
| [Domain authorization](#domain-authorization) | Run the importer only on domains you approve |
| **File upload** | |
| [Show file upload box](#show-file-upload-box) | Allow file uploads, or only copy-paste |
| [Worksheet selection](#worksheet-selection) | Let users pick a worksheet from a multi-sheet Excel file |
| [Import description](#import-description) | Let users describe the file they upload |
| [Formatting in Excel files](#formatting-in-excel-files) | Control how Excel dates, times, and numbers are read |
| **Column mapping** | |
| [Mapping choice](#mapping-choice) | Map file columns to template fields, or the reverse |
| [Zero template columns](#zero-template-columns) | Accept files without any predefined template columns |
| **Verify Data screen** | |
| [Export button](#export-button) | Let users export data with errors highlighted to Excel |
| **Import completion** | |
| [Show error text](#show-error-text) | Show import failure messages to users |
| [Import complete messages](#import-complete-messages) | Show custom success or failure messages |
| [Resubmit button](#resubmit-button) | Push the same file again with one click |
| [Custom redirect URL](#custom-redirect-url) | Send users to a page of your choice after a successful import |
| **Importer window** | |
| [Importer dialog size](#importer-dialog-size) | Choose a medium or large dialog on desktop screens |
| [Hide cancel button](#hide-cancel-button) | Remove the **Cancel** button from the importer |
| **Sheet transfer** | |
| [Sheet import & export](#sheet-import-and-export) | Copy a sheet to another account or within the same account |

## Data, privacy, and security

<a id="server-and-data-location" style={{ scrollMarginTop: "var(--scroll-mt, 7rem)" }} />

<a id="server--data-location" style={{ scrollMarginTop: "var(--scroll-mt, 7rem)" }} />

### Server & data location

Choose the geographic location of the servers and database that hold your users' data.

Data residency is the geographical location where data is stored, and it usually matters for regulatory or policy reasons. The US is the default location; the other option is Europe (Germany). Data uploaded by your users then passes through servers, and is stored in a database, in the selected location only.

Go to **Edit Sheets** → **Options** → **Privacy & Security** section and select the location from the dropdown.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/Fn747PbJ5U7GCAW2/images/locations.png?fit=max&auto=format&n=Fn747PbJ5U7GCAW2&q=85&s=107b2ce00f23caa7041963ee0c03a129" alt="Data location dropdown in Privacy & Security settings" width="567" height="159" data-path="images/locations.png" />
</Frame>

The selected location doesn't cover long-lived data about the import and the user files. This is mainly supplementary log data that helps with troubleshooting and analyzing import processes, and it doesn't include any original data from inside the user files.

<Note>
  You can also choose not to store the data at all. See [File delete policy](#file-delete-policy).
</Note>

The diagram below shows how the data flows when Europe is the data residency location.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/IiJm1ajqqYICKeqw/images/data-residency-flow.svg?fit=max&auto=format&n=IiJm1ajqqYICKeqw&q=85&s=caeebf3bc8fc00f907118c49448d3ee5" alt="Data flow with Europe selected as the data residency location" width="900" height="664" data-path="images/data-residency-flow.svg" />
</Frame>

### File delete policy

Decide whether CSVbox stores the files your users upload.

* **Do not store the file**: User-uploaded data isn't stored in the CSVbox datastore.
* **Store data**: Data is stored on CSVbox storage and auto-deleted after one month.

Choose based on your privacy preferences or the requirements of the sheet.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/image-33.png?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=093fdfdf2bca494df77238a31af69569" alt="File delete policy options" width="704" height="328" data-path="images/image-33.png" />
</Frame>

### Domain authorization

Run the importer on approved domains only.

Go to **Edit Sheets** → **Options** → **Authorized Domains** and add the domains or subdomains where the importer may be embedded.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/domains.jpg?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=e8519c99e632a2acfdde113fbbfdc107" alt="Authorized Domains setting" width="551" height="316" data-path="images/domains.jpg" />
</Frame>

If you don't add any domain, the importer works on all domains. This is the default. Use the `*` wildcard prefix to include every subdomain:

| Entry | Allowed | Not allowed |
| - | - | - |
| `exampleco.com` | `exampleco.com` | `www.exampleco.com`, `app.exampleco.com` |
| `www.exampleco.com` | `www.exampleco.com` | `exampleco.com`, `app.exampleco.com` |
| `app.exampleco.com` | `app.exampleco.com` | `exampleco.com`, `www.exampleco.com` |
| `*.exampleco.com` | All `exampleco.com` subdomains | |

If a domain fails validation, the user sees an **Unauthorized domain** error instead of the importer.

## File upload

### Show file upload box

Allow users to upload spreadsheet files, or only to copy-paste data.

To accept copy-pasted data only, hide the File Upload Box: go to sheet settings → **Display** → **File Upload** and select **No** for the **Show File Upload Box?** option.

### Worksheet selection

Let users choose which worksheet to upload from an Excel file that has several.

Go to sheet settings → **Display** → **File Upload** and select **Yes** for the **Allow Worksheet Selection** option. When this is set to **No**, the first worksheet is used.

### Import description

Let users name or describe the file they're uploading.

File names like `contacts.csv` or `Import 123.xlsx` lack context. Descriptions such as "Texas Customers" or "Parts from 2022 Catalog" make each import easier to identify. When enabled, a description box appears after the user selects the file.

Go to **Sheet Settings** → **Display** tab → **File Upload** page → **Show import description** option and select **Yes**.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/import-description-option.jpg?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=7c3e9ae2b0129be0ccc14b2072d14269" alt="Show import description option" width="707" height="335" data-path="images/import-description-option.jpg" />
</Frame>

The description is pushed to the destination along with the row data, in the `import_description` property:

```json theme={null}
{
  "import_id": 79418895,
  "sheet_id": 575,
  "sheet_name": "Products234248",
  "import_description": "Product Catalogue Jan 2024",
  "env_name": "default",
  "destination_type": "webhook"
}
```

Supported destinations:

* API/Webhook
* Zapier
* [Data at Client](/getting-started/3-receive-data#data-on-the-client-side)
* [Import Complete Webhook](/getting-started/3-receive-data#import-complete-webhook)

<Note>
  This feature is off by default. A description must be 3 to 100 characters long.
</Note>

### Formatting in Excel files

Control how dates, times, and numbers in Excel files are read.

Unlike CSV files, Excel files keep formatting, formulas, and cell types. The way Excel stores **dates**, **times**, and **numbers** internally can therefore lead to unexpected values during import. CSVbox lets you choose how each of these is interpreted.

<Note>
  To handle dates and numbers written in different regional styles in an uploaded file (for example, a day-first `04/05/2024` or a European `1.234,56`), see [Smart Date and Number Formats](/dashboard-settings/smart-date-and-number-formats).
</Note>

<Tabs>
  <Tab title="Dates">
    Excel stores dates in one of two ways:

    * **As formatted text**: e.g., `"03/04/2024"`
    * **As numeric serial values**: e.g., `45025`, the number of days since January 1, 1900.

    This can cause problems with international date formats. `"03/04/2024"` might be **March 4** in the U.S. (MM/DD/YYYY) or **April 3** in Europe (DD/MM/YYYY). If Excel stores the date as a number (`45025`) and the format is misread, the result can be completely off.

    **Date handling options**

    * **Default**: Uses Excel's built-in logic to interpret the cell as a date. Best for files with consistent formatting and locale.
    * **MM/DD/YYYY**: Forces the **Month-Day-Year** format. Example: `"03/04/2024"` → March 4, 2024
    * **DD/MM/YYYY**: Forces the **Day-Month-Year** format. Example: `"03/04/2024"` → April 3, 2024
    * **Custom**: Define a format like `YYYY-MM-DD`, `DD-MMM-YYYY`, or any other pattern that matches how your file stores dates. Example: `"12-Mar-2024"` → use custom format `DD-MMM-YYYY`

    <Tip>
      If your dates are inconsistently formatted or mix text and numeric values, clean them in Excel first, or use the **Custom** option for better accuracy.
    </Tip>
  </Tab>

  <Tab title="Times">
    Excel stores time values either as:

    * **Numeric fractions** of a day (e.g., `0.5` represents 12:00 PM)
    * **Formatted time strings** (e.g., `"14:30"`, `"2:30 PM"`, `"14:30:00"`)

    This causes parsing issues when some cells are numbers and others are text. For example, `0.75` might mean `6:00 PM` (75% of a day), while `"06:00"` clearly means 6 AM but may be read as a string.

    **Time handling options**

    * **Default**: Uses Excel's formatting as-is. Suitable for simple, clean files.
    * **HH:MM:SS**: Example: `"14:30:00"` → 2:30 PM
    * **HH:MM AM/PM**: Example: `"2:30 PM"` → 14:30
    * **Custom**: Define your own time pattern, such as `HH:mm` or `h:mm a`, based on your file's content.
  </Tab>

  <Tab title="Numbers">
    Excel often formats numbers in a way that changes how they appear:

    * A raw value of `0.15` could be displayed as `15%`
    * A value of `1200` might appear as `$1,200.00`
    * A long number like `1234567890123` may be shown in scientific notation (`1.23E+12`)

    These formatted values can mislead the importer if you expect clean numbers.

    **Number interpretation options**

    | Option | `$1,200.00` | `15%` | `1.23E+12` |
    | - | - | - | - |
    | **Formatted Values**: imports numbers exactly as shown in Excel | `$1,200.00` | `15%` | `1.23E+12` |
    | **Original RAW Values**: strips formatting and imports the numeric value | `1200` | `0.15` | `1230000000000` |

    <Tip>
      Use RAW if you plan to run calculations or validations on numeric fields after import.
    </Tip>
  </Tab>
</Tabs>

Date formatting is set **per sheet**, during file upload setup. Number formatting is set **per column**, for finer control.

#### Configure date formatting

<Steps>
  <Step title="Open the File Upload tab">
    Go to **Sheet Settings** → **Import Steps** → **File Upload** tab in your CSVbox dashboard.
  </Step>

  <Step title="Choose a date format">
    In the **Formatting in Excel** section, choose your preferred option for **Date Format**.
  </Step>

  <Step title="Save the configuration">
    Save the configuration.
  </Step>
</Steps>

#### Configure number formatting

<Steps>
  <Step title="Edit a Number column">
    Go to **Sheet Settings** → **Columns** and click **Edit** on a column with type **Number**.
  </Step>

  <Step title="Select a Values for Excel setting">
    Locate the **Values for Excel** option and select your preferred interpretation.
  </Step>

  <Step title="Save the configuration">
    Save the configuration.
  </Step>
</Steps>

## Column mapping

### Mapping choice

Let users map file columns to template fields, or template fields to file columns.

By default, on the column mapping screen, **Template Fields** are fixed on the left and **Uploaded File Columns** appear on the right in a dropdown, so users map each file column to a template field.

The **Mapping Choice** option reverses this direction. Selecting **Template Fields** as the Mapping Choice flips the layout: **File Columns** are fixed on the left, and **Template Fields** appear in the dropdown on the right. This suits different file structures and user preferences.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/image-36.png?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=49ef3295ef6549c31df8704ae6099d98" alt="Template Fields selected as the Mapping Choice" width="960" height="798" data-path="images/image-36.png" />
</Frame>

<Warning>
  The **Template Fields** Mapping Choice is **not compatible** with the [Ignore Columns](/sheet-settings/import-steps/map-columns) functionality.
</Warning>

### Zero template columns

Accept file submissions without any predefined template columns.

By default, CSVbox requires at least one template column for mapping. Setting **Allow Zero Template Columns** to **Yes** lets users submit files **without any predefined template columns**. Combine it with [Unmapped Columns](/sheet-settings/import-steps/map-columns) so users can upload files with **any set of columns**.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/Fn747PbJ5U7GCAW2/images/sleekshot-5.png?fit=max&auto=format&n=Fn747PbJ5U7GCAW2&q=85&s=cf82c7c798bd60b5ee0929b13daee5c9" alt="Allow Zero Template Columns setting" width="970" height="657" data-path="images/sleekshot-5.png" />
</Frame>

Use it when you want to accept user-defined file formats as they are, without enforcing a rigid template.

<Note>
  For this feature to work effectively, set **Allow Unmapped Columns** to **Yes** along with the **Show Unmapped Columns on Validation Screen** selection. This lets users review and verify file columns before submission.
</Note>

## Verify Data screen

### Export button

Let users export their data, with errors highlighted, to Excel.

Enable or disable the **Export** button on the Verify Data screen. The exported Excel file keeps the error highlighting and error messages, so users can fix the errors in Excel and quickly re-upload the file to CSVbox.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/export-settings.jpg?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=52e8916f772e8025b4d39515c97a1cef" alt="Export button setting" width="564" height="532" data-path="images/export-settings.jpg" />
</Frame>

<Frame caption="An exported file with error highlighting">
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/excel1-2.png?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=8d8dbf5756c477f275914165bf67b802" alt="Exported Excel file with error highlighting" width="1045" height="477" data-path="images/excel1-2.png" />
</Frame>

## Import completion

### Show error text

Show import failure messages to your users.

When enabled, users can click the **See Errors** button on the import complete screen to see why the import failed.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/error-option.jpg?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=beba0cad2063d135dd9fe59250449540" alt="Show Error Text option in sheet settings" width="553" height="589" data-path="images/error-option.jpg" />
</Frame>

### Import complete messages

Show your own success or failure message when an import finishes. The message can be:

* **Static**: Any fixed text.
* **Dynamic**: Fetched in real time from an API you provide. The importer appends metadata (`import_id`, `sheet_id`) to the API URL as query parameters, so you can return a message that fits the import.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/custom-messages.jpg?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=17b29ab6194d548efaa400f8ad4c6d50" alt="Import complete messages settings" width="1131" height="795" data-path="images/custom-messages.jpg" />
</Frame>

### Resubmit button

Push the same file again with one click.

Show or hide the **Resubmit** button on the Import Success screen. It starts a new import that pushes the same file with the same import configuration, so you don't have to upload the file, match columns, and confirm the data again. This is useful during testing and debugging.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/Fn747PbJ5U7GCAW2/images/resubmit-button.jpg?fit=max&auto=format&n=Fn747PbJ5U7GCAW2&q=85&s=39d6491233d6ae807fba252282bb403d" alt="Resubmit button on the Import Success screen" width="1370" height="1072" data-path="images/resubmit-button.jpg" />
</Frame>

### Custom redirect URL

Send users to a page of your choice after a successful import.

Specify the URL to redirect users to when an import completes successfully.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/Fn747PbJ5U7GCAW2/images/redirect-url.jpg?fit=max&auto=format&n=Fn747PbJ5U7GCAW2&q=85&s=fe9163c5cc0e909e8b642b06a51eeefe" alt="Custom redirect URL setting" width="735" height="572" data-path="images/redirect-url.jpg" />
</Frame>

## Importer window

### Importer dialog size

Choose the size of the import dialog on large screens: **Medium** or **Large**. Pick the one that suits your import data structure (number of columns).

Go to sheet settings → **Display** → **Importer Dialog Size**.

<Frame>
  <img src="https://mintcdn.com/csvbox-io/Fn747PbJ5U7GCAW2/images/select-size.jpg?fit=max&auto=format&n=Fn747PbJ5U7GCAW2&q=85&s=514967b1f94d1ba335cc543f5026ddda" alt="Importer Dialog Size setting" width="584" height="288" data-path="images/select-size.jpg" />
</Frame>

<Note>
  The dialog size applies to large (desktop) screens only. On smaller screens, the dialog always fills the entire screen.
</Note>

### Hide cancel button

Hide the **Cancel** button at the bottom-right corner of the importer.

The **X (close)** button at the top-right corner stays. Hiding **Cancel** helps prevent users from abandoning the import by accident and keeps them focused on the **Submit** button, which suits workflows where you want to guide users toward submission.

**Default**: `No`

<Frame>
  <img src="https://mintcdn.com/csvbox-io/gyjvlPdP5mzE2jo9/images/image-4.png?fit=max&auto=format&n=gyjvlPdP5mzE2jo9&q=85&s=4f280fa735100ac0bfa8e85b7fc6ca9d" alt="Hide Cancel Button setting" width="987" height="463" data-path="images/image-4.png" />
</Frame>

## Sheet transfer

<a id="sheet-import-and-export" style={{ scrollMarginTop: "var(--scroll-mt, 7rem)" }} />

<a id="sheet-import--export" style={{ scrollMarginTop: "var(--scroll-mt, 7rem)" }} />

### Sheet import & export

Export a sheet from one CSVbox account and import it into another, or duplicate it within the same account, in a few clicks. Use it to:

* Move sheets between staging and production accounts
* Share templates across teams
* Back up sheet configurations
* Reuse validated sheet structures

#### Export a sheet

<Steps>
  <Step title="Open your sheets">
    Go to **Sheets** in your dashboard and locate the sheet you want to export.
  </Step>

  <Step title="Click Export">
    Click the **Export** button in the **Actions** column. A dialog opens showing:

    * **Sheet License Key**
    * **Export Key**
    * Options to **Copy**, **Show**, or **Regenerate** the export key.
  </Step>

  <Step title="Copy both keys">
    Copy both the **Sheet License Key** and the **Export Key**.
  </Step>
</Steps>

#### Import a sheet

<Steps>
  <Step title="Log in to the target account">
    Log in to the account where you want to import the sheet.
  </Step>

  <Step title="Choose Import Sheet">
    Click **Add Sheet**, then select **Import Sheet**.
  </Step>

  <Step title="Paste the keys">
    Paste the **Sheet License Key** and the **Export Key**.
  </Step>

  <Step title="Click Import">
    Click **Import**. The entire sheet, including columns, validations, configuration, and settings, is copied into the new account.
  </Step>
</Steps>

<Note>
  The imported sheet gets a **new License Key**. The original sheet, and its existing imports and data, are not affected.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.