我正在使用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标签。我不确定此方法是否正确。
答案 0 :(得分:2)
运行此文件时,是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');
}
这只是一个基本示例。您显然希望在此处包括一些验证。