Import Excel to Looker

6 min read
Integrate Excel files with Looker by importing clean, structured data directly into your BI pipeline.

How to Import Excel Spreadsheets into Looker Using CSVBox (as of 2026)

For many SaaS products, letting users upload Excel files and visualize that data in Looker is a high-value feature. Looker itself does not accept raw Excel (.xlsx or .xls) uploads as a data source, so product and engineering teams need a lightweight ingestion layer that converts, validates, and delivers spreadsheet data into a queryable warehouse.

In this guide you’ll learn a pragmatic, developer-oriented flow using CSVBox — an embeddable spreadsheet importer that parses Excel and CSV files, enforces schema, and forwards clean rows to your backend so Looker can query them.


Who should follow this guide?

  • Technical founders adding self-serve data onboarding
  • Full-stack engineers implementing spreadsheet upload UX
  • SaaS product teams enabling business users to surface Excel data in BI
  • Internal tooling teams building import workflows for Looker

Excel → CSVBox → Warehouse → Looker: Workflow Overview

  1. Accept or convert Excel files into CSV-compatible rows
  2. Use CSVBox to collect, map, and validate uploads in your app UI
  3. Deliver validated rows to your warehouse via webhook or destination connector
  4. Model and visualize the data in Looker

This flow emphasizes the core CSV import steps used in production: file → map → validate → submit.


1. Convert Excel Files to a CSV-Compatible Format

Because Looker queries databases (not raw spreadsheet files), your ingestion step must normalize Excel into structured rows.

Options for your app:

  • Ask users to export and upload CSV files directly (lowest complexity)
  • Let users upload .xlsx or .xls and use an importer (like CSVBox) that parses those formats into rows automatically

Tip: Accepting .xlsx, .xls, and .csv reduces friction and support requests.


2. Embed CSVBox as the Spreadsheet Importer

CSVBox provides a developer-focused widget that handles file parsing, column mapping, and schema validation so you don’t have to build that UI and logic yourself.

Key benefits for engineers:

  • Accepts .xlsx, .xls, and .csv without custom parsers
  • Schema validation before rows hit your backend
  • Guided or automatic column mapping for end users
  • Embeddable JS widget you can style to match your app

How to get started:

  1. Create an account at https://csvbox.io
  2. Define the expected data schema in the CSVBox dashboard (required fields, types, rules)
  3. Generate a widget license key for embedding
  4. Embed the widget and handle the import callback

Example embed (paste into your frontend; adjust per your app):

<script src="https://widget.csvbox.io/widget.js"></script>
<div id="csvbox"></div>
<script>
  CSVBox.init({
    selector: "#csvbox",
    licenseKey: "YOUR_WIDGET_KEY",
    user: {
      id: "user_123",
      email: "user@example.com"
    },
    onImportComplete: function(result) {
      // result contains parsed rows and metadata
      // Trigger backend upload, ETL, or a webhook post
      console.log('Import Completed', result);
    }
  });
</script>

See docs: https://help.csvbox.io/getting-started/2.-install-code


3. Deliver Validated Rows to Your Database (Webhook or Destination)

After CSVBox parses and validates a file, it can forward the clean rows to your backend via a webhook or directly to supported destinations. From there, load the rows into a data warehouse that Looker can query.

Common Looker destinations:

  • Google BigQuery
  • Snowflake
  • Amazon Redshift
  • PostgreSQL

A minimal webhook receiver (Node.js/Express) might look like:

app.post('/csvbox/webhook', (req, res) => {
  const payload = req.body; // CSVBox sends parsed rows and metadata
  const rows = payload.data || payload.rows; // inspect the actual payload in your account
  // insert rows into your data store / enqueue for ETL
  insertIntoDatabase(rows)
    .then(() => res.status(200).send('OK'))
    .catch(err => res.status(500).send('Error'));
});

Implementation notes:

  • Parse JSON and validate payload shape before inserting
  • Consider idempotency and duplicate detection when ingesting repeated uploads
  • Log import metadata (uploader, filename, row count, errors) for troubleshooting

Full destinations guide: https://help.csvbox.io/destinations


4. Model and Visualize the Imported Data in Looker

Once rows are in your warehouse:

  • Create LookML models, explores, dimensions, and measures aligned to the CSVBox schema
  • Build Explores and dashboards so non-technical users can slice uploaded data
  • Expose self-serve dashboards inside your product or link to Looker UI

This flow lets users upload Excel leads, transactions, or inventories and immediately analyze them without SQL knowledge.


Common Excel Upload Challenges and How CSVBox Helps

ChallengeCSVBox solution
Inconsistent Excel formatsAccepts .xlsx, .xls, and .csv and normalizes to rows
Missing or invalid fieldsEnforces schema validation at upload time
Confusing column mappingGuided, user-friendly column matching UI
Troubleshooting failed importsAudit logs and import session details for transparent debugging

Emphasize validation and clear error feedback to reduce support load and improve data quality.


Why use CSVBox for Looker integrations?

CSVBox shortens dev time and reduces downstream data issues by validating spreadsheets at the edge. For engineering teams, that means fewer ETL failures and faster time-to-dashboard.

Key capabilities:

  • Accept multiple spreadsheet formats without extra libraries
  • Schema validation and required-field enforcement
  • Optional auto-mapping based on headers
  • Real-time user feedback and import error prevention
  • Embed via JavaScript with light frontend work
  • White-labeling and customization available in the widget
  • Secure transport and audit logging for import sessions

CSVBox acts as the import layer between users’ raw Excel files and the clean rows that power Looker dashboards.


Real-world example: Let sales upload Excel leads and track them in Looker

Implementation outline:

  1. Embed CSVBox in the CRM upload page
  2. Sales reps upload .xlsx lead lists
  3. CSVBox validates and maps lead fields (name, email, company, stage)
  4. Valid rows are sent to BigQuery or your warehouse
  5. Build Looker dashboards for lead funnel and activity metrics

This pattern reduces manual CSV cleaning and lets teams get insights into uploaded data faster.


Frequently Asked Questions

Can I upload .xlsx files into Looker directly?

No. Looker queries databases and does not ingest raw Excel files. Ingest spreadsheet rows into a warehouse Looker can query from.

Does CSVBox support Excel file types?

Yes — CSVBox accepts .xlsx, .xls, and .csv and parses them into rows with validation and mapping.

What destinations can CSVBox send data to?

CSVBox works with common warehouses and databases such as PostgreSQL, BigQuery, Snowflake, and others. See the destinations docs for specifics: https://help.csvbox.io/destinations

Can I brand the importer to match my app?

Yes. CSVBox supports white-labeling of the widget (logos, colors, fonts) so it blends with your UI.

Is there a free plan for development?

Yes. CSVBox offers a free tier suitable for development and testing — check the pricing page on csvbox.io.


Best practices for CSV imports in 2026

  • Validate schema at the UI edge so bad rows never reach your warehouse
  • Provide clear, contextual error messages and inline previews during mapping
  • Make uploads idempotent and log import session metadata for audits
  • Keep a small staging table per upload for review before merging into production tables

Final thoughts

If your product or internal tools rely on Excel uploads, using a dedicated importer like CSVBox avoids reinventing parsing, mapping, and validation logic. The result: cleaner data, faster dashboards in Looker, and less support overhead.

Get started with a free account at https://csvbox.io

✅ Cleaner data
✅ Faster insights in Looker
✅ Reduced engineering effort and support load

Related Posts