NewWe open-sourced 50+ Laravel packages
Custom AI apps, agents and automation — Roundly ConsultingRoundly
All packages

Spreadsheet imports look simple until real files arrive: semicolons and decimal commas from a localised Excel, a title row above the headers, headers nobody agreed on, a date that does not exist, a row that is already in the app, a file in the wrong encoding, a crash halfway through a large upload, and a user who imported the wrong file and wants it gone. Imports for Laravel handles that flow once. You describe each record type in an importer class; the package gives your users a template, matches their columns, checks every row before anything is saved, imports in the background and can undo it.

  • Business apps where users bring their own data — instead of retyping records, they download a template with dropdowns for the allowed values, fill it in and upload it. Nothing is saved until they commit, and invalid rows never are.
  • Moving data in from another system — an export keeps its own headers; the suggested mapping is reviewed once and saved per owner, so the next file with the same headers maps itself, in any column order and whatever the user’s language.
  • Recurring updates from a spreadsheet — rows are matched by a natural key (an identifier, then a fallback), and the Update mode changes only what the file fills in: a blank cell keeps the stored value.
  • Large files — validation and the commit run on the queue with progress, in idempotent chunks, so a crash or a redeploy never writes a row twice; a stuck run is cleaned up on schedule.
  • Bulk file uploads — many files or one ZIP, each becoming one record, with duplicate files detected by content and hostile archives refused.
  • Multi-tenant apps — every import belongs to an owner (a team, a company or a user) and only reads and writes that owner’s data, with permission checks on every step, also with teams-for-laravel.
  • Single-page and mobile front ends — switch on the JSON API to list importers, download templates, upload, map, preview, commit, follow progress and undo.

It is headless: the package owns the files, the checks, the data and the edge cases, and you build the screens. It imports CSV and XLSX only — no legacy .xls, OpenDocument or binary workbooks — and it never runs macros or evaluates formulas.

Show your open-source love

This package is free and MIT-licensed. If it saves you time, a one-off donation or a Patreon membership keeps it maintained, tested and documented.

More ways to support, including crypto

By donating, you agree to our donation terms.

Want this built into your product?

We integrate our packages into custom Laravel and AI builds. Tell us what you're working on and we'll reply within 48 hours.