2017-02-08 8 views
0

Ich habe ein Problem mit der Verwendung der Lang-Fassade in Verbindung mit dem Excel-Export. Der folgende Code funktioniert wie erwartet, er generiert die Excel-Datei wie erwartet, aber wenn ich versuche, die Sprachdateien hinzuzufügen, scheint die Datei beschädigt zu sein und Microsoft Excel wird sie nicht öffnen.Laravel 5 + Excel + Lang Fassade

Dies funktioniert perfekt:

$details_toprow = array(
      "Ref", 
      "Order Num", 
      "Your order num", 
      "Description", 
      "Colour", 
      "Units", 
      "Price" 
     ); 


     \Excel::create($filename, function ($excel) use ($shipment, $shipment_lines, $shipment_boxes, $headers, $details_toprow) { 
      $excel->sheet('shipment', function ($sheet) use ($shipment, $shipment_lines, $shipment_boxes, $headers, $details_toprow) { 
       $objDrawing = new \PHPExcel_Worksheet_Drawing(); 
       $objDrawing->setPath(public_path(getAssetsPath().'/img/logo_extranet.png')); //your image path 
       $objDrawing->setCoordinates('A1'); 
       $objDrawing->setWorksheet($sheet); 
       $sheet->row(2,$details_toprow); 
       $sheet->mergeCells('A1:G1'); 
       $sheet->setHeight(1, 50); 

       $row = 3; 
       foreach($shipment_lines as $item) 
       { 
        $sheet->row($row, array(
         $item->getReference(), 
         $item->getOrderNumber(), 
         $item->getCustomOrderNumber(), 
         html_entity_decode($item->getReferenceDescription(false)), 
         $item->getColorDescription(), 
         $item->getQuantity(), 
         $item->getPrice() 
        )); 
        $row++; 
       } 

       $row++; 
       $row++; 
       $second_box = $row; 

       $sheet->row($row, array(
        "Box number", 
        "Order Num", 
        "Your order num", 
        "Reference", 
        "Description", 
        "Color", 
        "Units", 
        "Ref s/cj", 
        "P/C Est.", 
        "Pc/Real" 
       )); 
       $row++; 
       foreach($shipment_boxes as $item) 
       { 
        $line = $item->getLine(); 
        $order_num = null; 
        $order_custom_num = null; 
        $reference = null; 
        $description = null; 
        $color_description = null; 
        $units = null; 
        $rfscj = 1; 
        $pcest = $item->peso_estimado;; 
        $pcreal = $item->peso_real;; 

        if ($line) 
        { 
         $order_num = $line->getOrderNumber(); 
         $order_custom_num = $line->getCustomOrderNumber(); 
         $reference = $line->getReference(); 
         $description = $line->getReferenceDescription(false); 
         $color_description = $line->getColorDescription(); 
         $units = $line->getQuantity(); 


        } 
        $sheet->row($row, array(
         $item->caja_ID, 
         $order_num, 
         $order_custom_num, 
         $reference, 
         $description, 
         $color_description, 
         $units, 
         $rfscj, 
         $pcest, 
         $pcreal 
        )); 
        $row++; 
       } 
       $sheet->cells('A2:J2', function($cells) { 
        $cells->setFontColor('#ffffff'); 
        $cells->setFontWeight('bold'); 
        $cells->setBackground('#3A3A3A'); 
       }); 
       $sheet->cells('A1:J1', function($cells) { 
        $cells->setFontColor('#ffffff'); 
        $cells->setFontWeight('bold'); 
        $cells->setBackground('#3A3A3A'); 
       }); 
       $sheet->cells('A'.$second_box.':J'.$second_box.'', function($cells) { 
        $cells->setFontColor('#ffffff'); 
        $cells->setFontWeight('bold'); 
        $cells->setBackground('#3A3A3A'); 
       }); 
      }); 

     })->export('xls'); 
    } 

Wenn ich die Werte des ersten Feldes im Code zu ändern:

$details_toprow = array(
     Lang::get("extranet-shipments.ref"), 
     Lang::get("extranet-shipments.order_num"), 
     Lang::get("extranet-shipments.order_num_alt"), 
     Lang::get("extranet-shipments.description") , 
     Lang::get("extranet-shipments.color") , 
     Lang::get("extranet-shipments.units") , 
     Lang::get("extranet-shipments.price") 
    ); 

Der einzige Unterschied ist die Anordnung assigment Werte von „Hardcoded“ Zum Laden von Lang Fassade scheint die Excel-Datei beschädigt

+0

Zum 'php Handwerker tinker' und Art' Lang :: get ("Extranet-shipments.ref") '. Lassen Sie uns wissen, was die Ausgabe des Befehls ist – Paras

+0

Die Rückgabe => "Extranet-shipments.ref" – pardalsalcap

+0

Dies ist der Inhalt der Ressourcen/lang/es/Extranet-shipment.php – pardalsalcap

Antwort

0

Ich stelle fest, dass es ein Leerzeichen war, dass dies nicht in den Lang-Dateien funktioniert.

Ich Gast es war die Header gesendet, bevor Excel seinen Job beendet hatte und dass Amy die Datei korrumpieren.

Danke für Ihre Hilfe