> For the complete documentation index, see [llms.txt](https://docs.sprinkledata.com/product/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sprinkledata.com/product/ingesting-your-data/file-uploads.md).

# File Uploads

You can ingest **CSV** or **Excel** files into Sprinkle. Sprinkle will create a table in the warehouse for the uploaded file.

### Watch Video :tv:

{% embed url="<https://youtu.be/B6-NmCdM6zk>" %}
File Uploads: Explanation & Feature Walkthrough
{% endembed %}

## Step-by-Step Guide

### Step 1: Configure Files Datasource

To learn about Data sources, refer [here](/product/ingesting-your-data/pipelines.md).

* Navigate to Ingest -> File Uploads Tab -> Setup files
* Provide the name -> Click on Create.

<figure><img src="/files/Pf4T957y0db8VSNsfdoK" alt=""><figcaption></figcaption></figure>

### Step 2: Add File

* 'Add File' button
* Click the 'Browse' button or drag and drop your CSV file.

<figure><img src="/files/7qIwStvdeiqLJ4Wt3R5H" alt=""><figcaption></figcaption></figure>

### Step 3: Add details and upload

* Provide the **name** for this file.
* **Skip before header:** Specify the number of top rows to skip before the header line when reading CSV. Do not skip the column header itself; the next available row is used to extract column names.
* **Exclude columns:** List of columns to be excluded when reading the CSV.

{% hint style="success" %}
**Note**: *There are a few validation checks that Sprinkle does to ensure the quality of the data being ingested.*

:digit\_one: ***Empty Column Headers***: *No column header should be empty*. Use Skip before headers if you want to skip a few rows at the top. In that case, the next row available is used to extract column names.

:digit\_two: ***Invalid Column Headers***: *Remove special characters or white spaces*. Make sure each column name is unique and begins with an alphabet or underscore.

To guide you through the errors and fix them, in-place error markings are shown on the Preview table.
{% endhint %}

* **Preview**: Shows a preview of the table. You can change the headers and also change the variable type of the data in the columns.

<figure><img src="/files/NndpktiBTu3i9AilDwhB" alt=""><figcaption></figcaption></figure>

* Click **Proceed**.
* After successful ingestion, a table in the warehouse will be created with the name pattern as ds\_\<datasourcename>\_\<filename>.
