Evan Miller makes the case for offering xls-exports instead of csv-exports.

Most people of your website’s users are also Excel users. When they export their data as CSV, they’ll probably just bring it into Excel first to have a look around. You should probably offer an explicit XLS export, and take it seriously.


An xls-file is capable of things that 'll never be possible in csv:

  • freezing the header row
  • formatting important cells
  • multiple sheets in one file
  • specify numer formatting
  • formulas

In the projects I've been working on I've been doing this for a couple of months. A nice Laravel package you can use is Laravel Excel.

This is how you export all values from a given repository that returns Eloquent models:

Excel::create($pathToFile, function($excel) {

    $excel->sheet('The sheet name', function($sheet) {

        $sheet->cells('A1:Z1', function($cells) {
            $cells->setBorder('node', 'none', 'solid', 'none');



The result is an excel-file with the header row frozen and underlined and it's values in bold.