Laravel Maatwebsite / excel随机添加额外列中的数据

我在Laravel使用maatwebsite / excel构build一个excel文件。 然而,它似乎是在行中添加数据,而不是我所期望的。 我是否错过了可能导致这种情况的东西? 它也不一致,例如对于新的工作表,即使工作表在左侧可能有不同的数字,也会逐字地添加相同的数据。

在这里输入图像说明

作为一种解决方法,我必须添加一堆空单元格到每一行像这样…

$sheet->row( 1, array( 'From: '.$from_date, 'To: '.$to_date, '', '', '', '', '', '', '', '', '' ) ); 

我的代码没有解决方法:

  $rows[$product_type] = array ( 'Received' => $received, 'Visually Inspected' => $visually_inspected, 'Visually Passed' => $visually_passed, 'Visually Failed' => $visually_failed, 'Technically Inspected' => $technically_inspected, 'Technically Passed' => $technically_passed, 'Technically Failed Phase 1' => $technically_failed_1, 'Technically Failed Phase 2' => $technically_failed_2, 'Technically Failed Phase 3' => $technically_failed_3, 'Total Technically Failed' => $failed ); Excel::create( 'KGdfmg564fdsin4', function ( $excel ) use ( $rows, $product_types, $to_date, $from_date) { // Set the title $excel->setTitle( 'Company Dashboard Report Data' ); // Chain the setters $excel->setCreator( 'Company ' ) ->setCompany( 'Company ' ); foreach($product_types as $key => $val) { $excel->sheet( $key, function ( $sheet ) use ( $rows, $key, $to_date, $from_date ) { $sheet->fromArray( $rows ); $sheet->setWidth( array( 'A' => 50, 'B' => 50 ) ); $sheet->row( 1, array( 'From: '.$from_date, 'To: '.$to_date, ) ); $sheet->row( 2, array( 'Received', $rows[$key]['Received'], ) ); $sheet->row( 3, array( 'Visually Inspected', $rows[$key]['Visually Inspected'], ) ); $sheet->row( 4, array( 'Visually Passed', $rows[$key]['Visually Passed'], ) ); $sheet->row( 5, array( 'Visually Failed', $rows[$key]['Visually Failed'], ) ); $sheet->row( 6, array( 'Technically Inspected', $rows[$key]['Technically Inspected'], ) ); $sheet->row( 7, array( 'Technically Passed', $rows[$key]['Technically Passed'], ) ); $sheet->row( 8, array( 'Technically Failed Phase 1', $rows[$key]['Technically Failed Phase 1'], ) ); $sheet->row( 9, array( 'Technically Failed Phase 2', $rows[$key]['Technically Failed Phase 2'], ) ); $sheet->row( 10, array( 'Technically Failed Phase 3', $rows[$key]['Technically Failed Phase 3'], ) ); $sheet->row( 11, array( 'Units Technically Failed', $rows[$key]['Total Technically Failed'], ) ); } ); } // Call them separately $excel->setDescription( 'Dashboard Report Data' ); } )->save( 'xlsx' ); 

删除$sheet->fromArray( $rows ); 从你的代码作品给我一试。

在这里输入图像说明