clivern/lce

Export a Large CSV Files with Laravel.

v1.0.4 2017-08-08 13:05 UTC

This package is auto-updated.

Last update: 2024-10-29 21:50:28 UTC


README

Export a Large Dataset in CSV Format. It is based on Symfony’s StreamedResponse and Laravel’s chunked queries.

Current version: [v1.0.4]

Installation

Via Composer

$ composer require clivern/lce

Then add the ServiceProvider to the providers array in config/app.php

'providers' => [
    // ...
    Clivern\Lce\LceServiceProvider::class,
    // ...
],

You can use the facade for shorter code. Add this to your aliases:

'aliases' => [
    // ...
    'Lce' => Clivern\Lce\Facades\Lce::class,
    // ...
],

The class is bound to the ioC as lce

$lce = App::make('lce');

Usage

For Example Let's use it to export options table.

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Option; # Eloquent Model
use Validator;
use Input;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;


class HomeController extends Controller
{

    public function indexRender()
    {

        return \App::make('lce')
            ->file('options')
            ->source(new Option)
            ->chunks(10)
            ->header([["Id","Option Key","Option Value"], ['', '', '']])->callback(function($option){
                return [
                    $option->id,
                    $option->op_key,
                    $option->op_value,
                ];
            })->export();
    }
}

Change log

Version 1.0.4:
> Composer lock file added.

Version 1.0.3:
> New method to get CSV file content.
> New feature to add two rows in single return.

Version 1.0.2:
> Docs Updated.

Version 1.0.1:
> Docs Updated.
> UTF-8 Support Added.

Version 1.0.0:
> Initial Release.

Security

If you discover any security related issues, please email hello@clivern.com instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.