How to Export CSV File in Laravel

Websolutionstuff | Apr-30-2021 | Categories : Laravel

In this post we will see how to export CSV file in laravel, Export csv file in laravel is most common function and many time we are using this function using pluging or readymate function.

Here, i will give you example export csv file in laravel 8 without using any type plugin in laravel.So, let's see how to export csv file in laravel 8.

 

Step 1: Add Route

Add get method in your route file.

Route::get('/examples', 'ExampleController@exportCsv');

 

Step 2: In Blade File

Add export button link in your blade file from where you want to export your data

<span data-href="/examples" id="export" class="btn btn-success btn-sm" onclick ="exportTasks (event.target);">Export</span>

.

Step 3 : Add Script in JS file

Now, add below script.

<script>
   function exportTasks(_this) {
      let _url = $(_this).data('href');
      window.location.href = _url;
   }
</script>

 

Step 3 : Add Function in Controller

Copy below code in your controller for export csv file in laravel 8.

public function exportCsv(Request $request)
{
   $fileName = 'tasks.csv';
   $tasks = Task::all();

        $headers = array(
            "Content-type"        => "text/csv",
            "Content-Disposition" => "attachment; filename=$fileName",
            "Pragma"              => "no-cache",
            "Cache-Control"       => "must-revalidate, post-check=0, pre-check=0",
            "Expires"             => "0"
        );

        $columns = array('Title', 'Assign', 'Description', 'Start Date', 'Due Date');

        $callback = function() use($tasks, $columns) {
            $file = fopen('php://output', 'w');
            fputcsv($file, $columns);

            foreach ($tasks as $task) {
                $row['Title']  = $task->title;
                $row['Assign']    = $task->assign->name;
                $row['Description']    = $task->description;
                $row['Start Date']  = $task->start_at;
                $row['Due Date']  = $task->end_at;

                fputcsv($file, array($row['Title'], $row['Assign'], $row['Description'], $row['Start Date'], $row['Due Date']));
            }

            fclose($file);
        };

        return response()->stream($callback, 200, $headers);
    }

 

Recommended Post
Featured Post
Crop Image Before Upload Using Croppie Plugin
Crop Image Before Upload Using...

In this article, we will see how to crop images before uploading using the croppie plugin. any times we have requir...

Read More

Aug-15-2020

How To Create Dynamic Linechart In Laravel
How To Create Dynamic Linechar...

In this post, we will see how to create a dynamic line chart in laravel. A dynamic line chart or line plot or line...

Read More

Jul-22-2020

How To Two Factor Authentication Using Email In Laravel 10
How To Two Factor Authenticati...

In this article, we will see how to two-factor authentication using email in laravel 10. Here, we will learn about...

Read More

Apr-14-2023

Laravel 8 User Roles and Permissions Without Package
Laravel 8 User Roles and Permi...

In this tutorial we will see laravel 8 user roles and permissions without package.Roles and permissions are an impo...

Read More

Sep-13-2021