Home > Enterprise >  Adjust format of generated CSV-File
Adjust format of generated CSV-File

Time:12-18

I am generating a very small CSV-File with only 4 columns and it works fine. When I press the designated button it downloads and I can open it and all the wanted data is present.

However the layout is very weird and it doesn't look good. Here is how it looks:

https://i.stack.imgur.com/klXcw.png

In the upper row are the column names and in the row below is the data.

Here is my code that generates the file:

public function exportData(Bewerbungen $bewerbung) {

        $query = Portal::query()->where('email', '=', $bewerbung->bewerber_email)->get();

        $headers = [
            "Content-type"        => "text/csv",
            "Content-Disposition" => "attachment; filename=bewerberdaten.csv",
            "Pragma"              => "no-cache",
            "Cache-Control"       => "must-revalidate, post-check=0, pre-check=0",
            "Expires"             => "0",
        ];
        $columns  = ['id', 'email', 'vorname', 'nachname', 'telefon'];
        $callback = function () use ($query, $columns) {
            $file = fopen('php://output', 'w'); 
            fputcsv($file, $columns);
            foreach ($query as $res) {
                fputcsv($file, [$res->id, $res->email, $res->vorname, $res->nachname, $res->telefon]);
            }
            fclose($file);
        };
        return Response::stream($callback, 200, $headers);
    }

I tried to play around with content encoding, but it is my first time working with csv and file exporting so I have no clue if it is the right direction.

Edit: Better screenshot

https://i.stack.imgur.com/8HvhA.png

CodePudding user response:

The solution was to install this: https://docs.laravel-excel.com/3.1/getting-started/installation.html

And then changing the variable 'excel_compatibility' => false to true

It is inside the config/excel.php file

  • Related