# 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](https://docs.sprinkledata.com/product/ingesting-your-data/pipelines).

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

<figure><img src="https://2657302904-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FazylpawQDleaF3gtrhZd%2Fuploads%2F04ZserBLjOv9K619lPwZ%2FGroup%2063.png?alt=media&#x26;token=16422dc6-fb89-4729-986a-8e6f9c746c1b" 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="https://2657302904-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FazylpawQDleaF3gtrhZd%2Fuploads%2FWRIVCFYJOco4dzhiYLST%2FGroup%2064.png?alt=media&#x26;token=5ed5d08a-3024-4ec5-8df9-046095f3a20f" 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="https://2657302904-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FazylpawQDleaF3gtrhZd%2Fuploads%2FsS9kua6bdAAGimanZYzo%2FScreenshot%202022-12-05%20at%203.45.02%20PM.png?alt=media&#x26;token=0f85cda9-b456-4380-8538-d554126d2902" 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>.
