2017-04-27 3 views
1

Ich baue eine Excel-Datei mit maatwebsite/Excel in Laravel. Es scheint jedoch, Daten über die Zeilen hinweg hinzuzufügen, nicht in der Art, wie ich es erwarte. Fehle ich etwas, das das verursachen könnte? Es ist auch nicht konsistent, z.B. Bei neuen Blättern werden wörtlich die gleichen Daten hinzugefügt, obwohl das Blatt auf der linken Seite verschiedene Zahlen haben kann.Laravel Maatwebsite/Excel Hinzufügen von Daten in zusätzlichen Spalten zufällig

enter image description here

Als Abhilfe, die ich gehabt haben, wie so ...

eine Reihe von leeren Zellen zu jeder Zeile hinzufügen
   $sheet->row(1, array(
        'From: '.$from_date, 
        'To: '.$to_date, 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '' 
       )); 

Mein Code ohne Abhilfe:

$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'); 

Antwort

0

Entfernen $sheet->fromArray($rows); von Ihrem Code funktioniert für mich, es zu versuchen.

enter image description here

+0

Thanks :), ich hatte das Gefühl, es war etwas, was ich tat !!! – Adrian

Verwandte Themen