laravel excel 导出所有记录失败
laravel excel export all records fails
我想使用 maatweb 包
将视图中的所有记录导出到 excel sheet
在我的控制器中我使用了以下函数
public function exportAll()
{
Excel::create('POs', function ($excel)
{
$excel->setTitle('Pos');
$excel->sheet('POs', function ($sheet)
{
$pos = PO::all();
$arr =array();
foreach($pos as $po)
{
foreach ($po->mr as $m)
foreach ($po->suppliers as $supplier)
{
$data = array($m->mr_no, $po->po_no, $po->po_subject,
$po->po_issued, $po->po_total_cost, $po->po_currency,
$po->po_purchase_method, $po->po_payment_method,
$po->po_delivery_method, $po->po_confirmation,
$po->po_loaded_on_ideas, $supplier->vname,
$po->po_loaded_on_ideas, $po->po_approved_on_ideas,
$po->memo_to_fin, $po->po_delivery_date,
$po->po_mr_received_date, $po->po_mrr_received_date,
$po->po_invoice_received_date, $po->po_penalty,
$po->po_cover_invoice, $po->po_completed
);
array_push($arr, $data);
}
}
$sheet->loadView( 'pos.pos_all_template' )->with('pos',$pos);
//
});
})->export('xlsx');
}
在我使用的路由文件中
Route::get('po_s/exportall','POsController@exportAll');
在我的视图文件中
@foreach($pos as $p)
@foreach($p->mr as $m)
@foreach($p->suppliers as $s)
<tr style="color:rgb(0, 0, 0);" align="center" >
<th align="center" > {{ $m['mr_no'] }} </th>
<th align="center" > {{ $p['po_no'] }} </th>
<th align="center" > {{ $p['po_subject'] }} </th>
<th align="center" >{{ $p['po_issued'] }} </th>
<th align="center" >{{ $s['vname'] }} </th>
<th align="center" >{{ $p['po_total_cost'] }} </th>
<th align="center" >{{ $p['po_currency'] }} </th>
<th align="center" >{{ $p['po_purchase_method'] }} </th>
<th align="center" >{{ $p['po_payment_method'] }} </th>
<th align="center" >{{ $p['po_delivery_method'] }} </th>
<th align="center" >{{ $p['po_delivery_date'] }} </th>
<th align="center" >{{ $p['po_loaded_on_ideas'] }} </th>
<th align="center" >{{ $p['po_mr_received_date'] }} </th>
<th align="center" >{{ $p['po_mrr_received_date'] }} </th>
<th align="center" >{{ $p['po_invoice_received_date'] }} </th>
<th align="center" >{{ $p['po_penalty'] }} </th>
<th align="center" >{{ $p['po_cover_invoice'] }} </th>
<th align="center" >{{ $p['po_completed'] }} </th>
</tr>
@endforeach
@endforeach
@endforeach
我收到的空 excel 文件没有任何数据的问题
首先尝试这个 -> dd( $pos = PO::all(););
或 enter code here
dd($pos);
如果你得到输出然后尝试你的 for-each 循环你在使用 dd();
时得到的结果。如果你得到数据然后 Creating Excel sheet 是问题检查下面的代码我是如何创建 sheet
public function createDocs()
{
\Excel::create('JOBS', function($excel) {
$excel->sheet('2015', function($sheet) {
$jobs = DB::table('jobs')->get();
$data = array('JOB ID','CONSIGNEE CODE','CONSIGNEE NAME','CONSIGNEE VAT NO','DESCRIPTION','VESSEL & VOYAGE','INVOICE VALUE','ETA/ATA DATE','B/L or AWB NUMBER','COMPLETE DATE','DELIVERY INVOICE VALUE','DUTY AMOUNT','TERMINAL','PAYMENT','INCOTERMS','COM INVOICE NO','COM INVOICE DATE','COM INVOICE VALUE','BANK','BANKREFNO','ORIGIN','EXPORT','TRADING','TOTAL EXPENSES','PROFIT');
$sheet->fromArray(array($data),null,'A1',false,false);
foreach($jobs as $row){
$sum = DB::table('charges')->where('job_id', $row->id)->sum('amount');
$consignee = DB::table('consignees')->where('id', $row->id)->first();
$data=array($row->id,$consignee->code,$consignee->name,$consignee->vat_num,$row->description,$row->vessel,
$row->invoice_value,$row->eta_date,$row->awb_num,$row->complete_date,$row->del_inv_val,$row->duty_amount,
$row->terminal,$row->payment,$row->incoterm,$row->com_inv_no,$row->com_inv_date,$row->com_inv_value,$row->bank,$row->bank_ref_no,
$row->country_origin,$row->country_export,$row->country_trading,$sum,$row->invoice_value-$sum);
$sheet->fromArray(array($data),null,'A1',false,false);
}});})->download('csv');}
并使用这个 link http://www.maatwebsite.nl/laravel-excel/docs/export
我想使用 maatweb 包
将视图中的所有记录导出到 excel sheet在我的控制器中我使用了以下函数
public function exportAll()
{
Excel::create('POs', function ($excel)
{
$excel->setTitle('Pos');
$excel->sheet('POs', function ($sheet)
{
$pos = PO::all();
$arr =array();
foreach($pos as $po)
{
foreach ($po->mr as $m)
foreach ($po->suppliers as $supplier)
{
$data = array($m->mr_no, $po->po_no, $po->po_subject,
$po->po_issued, $po->po_total_cost, $po->po_currency,
$po->po_purchase_method, $po->po_payment_method,
$po->po_delivery_method, $po->po_confirmation,
$po->po_loaded_on_ideas, $supplier->vname,
$po->po_loaded_on_ideas, $po->po_approved_on_ideas,
$po->memo_to_fin, $po->po_delivery_date,
$po->po_mr_received_date, $po->po_mrr_received_date,
$po->po_invoice_received_date, $po->po_penalty,
$po->po_cover_invoice, $po->po_completed
);
array_push($arr, $data);
}
}
$sheet->loadView( 'pos.pos_all_template' )->with('pos',$pos);
//
});
})->export('xlsx');
}
在我使用的路由文件中
Route::get('po_s/exportall','POsController@exportAll');
在我的视图文件中
@foreach($pos as $p)
@foreach($p->mr as $m)
@foreach($p->suppliers as $s)
<tr style="color:rgb(0, 0, 0);" align="center" >
<th align="center" > {{ $m['mr_no'] }} </th>
<th align="center" > {{ $p['po_no'] }} </th>
<th align="center" > {{ $p['po_subject'] }} </th>
<th align="center" >{{ $p['po_issued'] }} </th>
<th align="center" >{{ $s['vname'] }} </th>
<th align="center" >{{ $p['po_total_cost'] }} </th>
<th align="center" >{{ $p['po_currency'] }} </th>
<th align="center" >{{ $p['po_purchase_method'] }} </th>
<th align="center" >{{ $p['po_payment_method'] }} </th>
<th align="center" >{{ $p['po_delivery_method'] }} </th>
<th align="center" >{{ $p['po_delivery_date'] }} </th>
<th align="center" >{{ $p['po_loaded_on_ideas'] }} </th>
<th align="center" >{{ $p['po_mr_received_date'] }} </th>
<th align="center" >{{ $p['po_mrr_received_date'] }} </th>
<th align="center" >{{ $p['po_invoice_received_date'] }} </th>
<th align="center" >{{ $p['po_penalty'] }} </th>
<th align="center" >{{ $p['po_cover_invoice'] }} </th>
<th align="center" >{{ $p['po_completed'] }} </th>
</tr>
@endforeach
@endforeach
@endforeach
我收到的空 excel 文件没有任何数据的问题
首先尝试这个 -> dd( $pos = PO::all(););
或 enter code here
dd($pos);
如果你得到输出然后尝试你的 for-each 循环你在使用 dd();
时得到的结果。如果你得到数据然后 Creating Excel sheet 是问题检查下面的代码我是如何创建 sheet
public function createDocs()
{
\Excel::create('JOBS', function($excel) {
$excel->sheet('2015', function($sheet) {
$jobs = DB::table('jobs')->get();
$data = array('JOB ID','CONSIGNEE CODE','CONSIGNEE NAME','CONSIGNEE VAT NO','DESCRIPTION','VESSEL & VOYAGE','INVOICE VALUE','ETA/ATA DATE','B/L or AWB NUMBER','COMPLETE DATE','DELIVERY INVOICE VALUE','DUTY AMOUNT','TERMINAL','PAYMENT','INCOTERMS','COM INVOICE NO','COM INVOICE DATE','COM INVOICE VALUE','BANK','BANKREFNO','ORIGIN','EXPORT','TRADING','TOTAL EXPENSES','PROFIT');
$sheet->fromArray(array($data),null,'A1',false,false);
foreach($jobs as $row){
$sum = DB::table('charges')->where('job_id', $row->id)->sum('amount');
$consignee = DB::table('consignees')->where('id', $row->id)->first();
$data=array($row->id,$consignee->code,$consignee->name,$consignee->vat_num,$row->description,$row->vessel,
$row->invoice_value,$row->eta_date,$row->awb_num,$row->complete_date,$row->del_inv_val,$row->duty_amount,
$row->terminal,$row->payment,$row->incoterm,$row->com_inv_no,$row->com_inv_date,$row->com_inv_value,$row->bank,$row->bank_ref_no,
$row->country_origin,$row->country_export,$row->country_trading,$sum,$row->invoice_value-$sum);
$sheet->fromArray(array($data),null,'A1',false,false);
}});})->download('csv');}
并使用这个 link http://www.maatwebsite.nl/laravel-excel/docs/export