Экспорт таблицы базы данных в EXCEL в laravel - PullRequest
0 голосов
/ 02 декабря 2018

я использую laravel5.6.Я хочу экспортировать данные таблицы базы данных в файл Excel.Вот мой код контроллера

    use Exporter;

    $business = Approvedemand::all();
    $values ='';
    foreach($business as $item)
    {
        $values.='<tr>
            <td>'.$item['id'].'</td>
            <td>'.$item['name'].'</td>
            </tr>';   
    }
    header('Content-type: application/excel');
    $filename = date('Y-m-d').'-approveList'.'.xls';
    header('Content-Disposition: attachment; filename='.$filename);

    $data = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">
    <head>
       <!--[if gte mso 9]>
       <xml>
         <x:ExcelWorkbook>
             <x:ExcelWorksheets>
               <x:ExcelWorksheet>
                  <x:Name>Sheet 1</x:Name>
                      <x:WorksheetOptions>
                          <x:Print>
                             <x:ValidPrinterInfo/>
                          </x:Print>
                      </x:WorksheetOptions>
               </x:ExcelWorksheet>
            </x:ExcelWorksheets>
        </x:ExcelWorkbook>
    </xml>
    <![endif]-->
</head>
<body>
   <table>
      <tr>
        <td>ID</td>
        <td>Name</td>
     </tr>'
    .$values.
  '</table>
 </body>
 </html>';

 echo $data;

Когда я запускаю этот файл, файл Excel загружается, но в Excel отображается тег HTML.я не уверен, что этот метод правильный или нет.

1 Ответ

0 голосов
/ 03 декабря 2018

Когда я запускаю это, файл Excel ..

Я предполагаю, что вы имеете в виду вызов функции контроллера с веб-маршрутом,Что-то вроде ..

Route::get('/your/path', 'BusinessController@export')->name('export');

Я хочу экспортировать данные таблицы базы данных в файл Excel.

Вы можетеиспользуйте для этого Maatwebsite / Excel 2.1.0 .

BusinessController :

use App\Approvedemand;

public function export()
{
    $data = App\Approvedemand::all();

    return Excel::create('Approve Demand'), function($excel) use ($data) {
        $excel->sheet('Sheetname', function($sheet) use ($data)
        {
            $sheet->fromArray($data);
        });
    })->export('xls');
}

Это лишь базовый пример.Вы, очевидно, хотели бы включить сюда некоторую проверку.

...