Puede que trabajes con laravel y estas tratando de exportaer un excel con el paquete Laravel Excel pueda salir el siguiente error:
Si intentas abrir el archivo veras un montón de símbolos
Lo que esta ocurriendo es que en algún punto de la creación del Excel se esta enviando un salto de carro en blanco y eso hace que truene el resto de la información.
Hay un truquillo con el que puedes evitar esto, debes colocarlo dentro del controlador que ejecuta la exportación
public function itemExport(){
/*Si no coloco estas lineas Falla*/
ob_end_clean();
ob_start();
/*Si no coloco estas lineas Falla*/
return Excel::download(new ItemExport, 'Existencia_Articulos_EPP.xlsx');
}
Si, la magia esta en estas lineas
ob_end_clean();
ob_start();
Esto hace que primero se cargue toda la info y una vez terminada la carga genera el Excel.
Sin embargo, igual debes asegurarte de que las columnas de la información también se envíen al paquete. Eso es justo lo que me pasaba a mi. Te dejo un ejemplo de como indicarle al paquete laravel excel que debe incluir las columnas
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use DB;
class ItemExport implements FromCollection,WithHeadings
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
//return Item::all();
$datos = DB::table('items')->select('code_item','description','quantity','onhand')->where('status','=', 1)->get();
return $datos ;
}
public function headings(): array
{
return ["Codigo", "Articulo", "Existencia Epp","Existencia Oracle"];
}
}
Y al agregar las columnas ya no será necesario incluir las dos lineas que menciones anteriormente.
Muchas gracias, estaba rompiendome la cabeza con el error.