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
Laravel 8 Google Pie Chart Example
Laravel 8 Google Pie Chart Exa...

This article will show the laravel 8 google pie chart example. Google charts use to visualize data on you...

Read More

Mar-03-2021

Character Count In Textarea
Character Count In Textarea

In this article, we will explain to you how to count characters from textarea. many times a client has requirements...

Read More

Jul-08-2020

CRUD With Image Upload In Laravel 10 Example
CRUD With Image Upload In Lara...

In this article, we will see crud with image upload in laravel 10 examples. Here, we will learn how to image upload with...

Read More

Mar-27-2023

Laravel 8 Image Upload Example
Laravel 8 Image Upload Example

In this article, we will see the laravel 8 image upload example. Image or file upload is the most common task...

Read More

Oct-06-2020