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
How To Image Upload In CKeditor With Laravel 10
How To Image Upload In CKedito...

In this article, we will see how to image upload in CKEditor with laravel 10. Here, we will learn about image uploa...

Read More

May-08-2023

What Is Digital Marketing?
What Is Digital Marketing?

Digital marketing is the component of marketing that utilizes internet and online bas...

Read More

Oct-19-2021

How to Uninstall Composer on Ubuntu 23.04
How to Uninstall Composer on U...

Hey there! If you've found your way to this guide, chances are you're looking to bid farewell to Composer on you...

Read More

Jan-22-2024

Change Text Color Based On Background Color Using Javascript
Change Text Color Based On Bac...

In this article, we will see a change text color based on background color using javascript. Sometimes we have requ...

Read More

Dec-25-2020