PHPackages                             underwear/laravel-excel-import - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. underwear/laravel-excel-import

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

underwear/laravel-excel-import
==============================

Simple import from excel for Laravel

v1.1(6y ago)135PHP

Since May 13Pushed 6y ago1 watchersCompare

[ Source](https://github.com/underwear/laravel-excel-import)[ Packagist](https://packagist.org/packages/underwear/laravel-excel-import)[ RSS](/packages/underwear-laravel-excel-import/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

laravel-excel-import
====================

[](#laravel-excel-import)

Easily import xlsx file right into you database just with some code lines! Validate your data with default laravel validator and search related values from other tables.

```
use Underwear\Import\Import;
use Underwear\Import\Elements\Text;

$dbTable = 'categories';
$xlsxFilepath = '/some/path/to/file.xlsx';

Import::make($dbTable, [

    Text::make('title', 'A'),

    Text::make('code', 'B')
        ->rules(['filled', 'size:12'])
        ->prepare(function ($value) {
            return ucfirst($value);
        }),

])->parseFile($xlsxFilepath);
```

Supported Columns Types
-----------------------

[](#supported-columns-types)

### Text

[](#text)

```
use Underwear\Import\Elements\Text;

Text::make('targetTableColumnName', 'A');
```

You can add validation [rules](https://laravel.com/docs/7.x/validation#available-validation-rules):

```
use Underwear\Import\Elements\Text;

Text::make('target_table_colum_name', 'A')
        ->rules(['filled', 'email']);
```

Or even add your own closure to mutate value

```
use Underwear\Import\Elements\Text;

Text::make('target_table_colum_name', 'A')
        ->prepare(function($value) {
                return ucfirst($value);
        });
```

### Slug

[](#slug)

You can generate slug from text

```
use Underwear\Import\Elements\Slug;

Slug::make('slug', 'B');
```

### Boolean

[](#boolean)

```
use Underwear\Import\Elements\Boolean;

Boolean::make('is_published', 'D')
      ->trueValue('yeap');
```

### Autoincrement

[](#autoincrement)

Do not uses xls cells to get value. Just generates by it owns.

```
use Underwear\Import\Elements\Autoincrement;

Autoincrement::make('order_column');
```

### BelongsTo

[](#belongsto)

```
use Underwear\Import\Elements\BelongsTo;

BelongsTo::make('category_id', 'C', 'categories' , 'title', 'id');

// 3th arg: related table in database;
// 4th arg: column for searching in related table;
// 5th arg: column for value returning from related table;
```

### Closure

[](#closure)

Do not uses xls cells to get value. Just returns value

```
use Underwear\Import\Elements\Closure;

Closure::make('some_table_field', function() {
        // code here whatever you want
        return "something";
});
```

### Faker

[](#faker)

Use can also use `fzaninotto/Faker`

```
use Underwear\Import\Elements\Faker;
use Faker\Generator;

Faker::make('some_table_field', function(Generator $faker) {
        return $faker->word;
});
```

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require underwear/laravel-excel-import

```

Usage example
-------------

[](#usage-example)

Imagine we need to import some articles from xlsx file.

Xlsx file has some fields like:

- "title" (A column)
- "body" (B column)
- "category name" (C column)
- "is\_published" (D column) with values "yeap" if true

DB table has columns:

- (int) id
- (string) title
- (string) slug
- (int fk) category\_id
- (bool) is\_published
- (int) order\_column

```
use Underwear\Import\Import;
use Underwear\Import\Elements\Text;
use Underwear\Import\Elements\BelongsTo;
use Underwear\Import\Elements\Boolean;
use Underwear\Import\Elements\Autoincrement;

Import::make('articles', [

    Text::make('title', 'A')
      ->rules(['filled']),

    Slug::make('slug', 'A'),

    BelongsTo::make('category_id', 'C', 'categories' , 'title', 'id'),

    Boolean::make('is_published', 'D')
      ->trueValue('yeap'),

    Autoincrement::make('order_column'),

])->parseFile('/path/to/articles.xlsx')

```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2244d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/48b5d9ece0bfb01bcfdc274b7fd27cacd3233c9cde71a2ddd4e1d4fcdc024d9a?d=identicon)[underwear](/maintainers/underwear)

---

Top Contributors

[![underwear](https://avatars.githubusercontent.com/u/4825406?v=4)](https://github.com/underwear "underwear (17 commits)")

### Embed Badge

![Health badge](/badges/underwear-laravel-excel-import/health.svg)

```
[![Health](https://phpackages.com/badges/underwear-laravel-excel-import/health.svg)](https://phpackages.com/packages/underwear-laravel-excel-import)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[solspace/craft-freeform

The most flexible and user-friendly form building plugin!

54681.3k19](/packages/solspace-craft-freeform)[pimcore/data-importer

Adds a comprehensive import functionality to Pimcore Datahub

46855.5k5](/packages/pimcore-data-importer)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
