Creando Excel con Doctrine 2 & Zend_Framework

Bueno como dice el titulo es lo que haremos, aqui mostraré como enviar una cabezera de tipo mime,
con lo que le diremos al navegador que nuestra tabla html obtenida con una funcion en el repositorio de Doctrine 2 es un archivo .xls Manos a la Obra.







Sin título



<?php
public function getexcelAction(){
$this->_helper->layout->disableLayout();
$this->getHelper('viewRenderer')->setNoRender();
$nEid = $this->getRequest()->getParam('empresa_id');
$nZcid = $this->getRequest()->getParam('zonacontrato_id');
$sExcel = "";
$sFechaD = date("Y-m-d");

header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=Tecnicos-$sFechaD.xls");
header("Pragma: no-cache");
header("Expires: 0");

if(!empty($nEid) || !empty($nZcid)){
$aTecnicos = $this->em->getRepository('entities\Tecnico')
->getTecnicoByAttr($nEid,$nZcid);
}else{
$aTecnicos = $this->em->getRepository('entities\Tecnico')
->getTecnicoByAttr();
}

if(empty($aTecnicos)){
echo "¡AVISO!:";
echo "¡No se han encontrado Tecnicos segun sus especificaciones!";
return;
}

$sExcel .= "<table border='1'>";
$sExcel.=
"<tr><td> Nombre Tecnico </td><td>Numero Tecnico</td><td>Activo</td><td>ID</td><td>Clasificaciones</td><td>Areas</td><td>Especialidades</td>
<td>Grupos Resolutores</td></tr>";


foreach($aTecnicos as $t){
$sExcel .= "<tr>";
$sExcel .= "<td>".$t['nombre']."</td>";
$sExcel .= "<td>".$t['nro_tecnico']."</td>";
$sExcel .= "<td>".$t['Activo']."</td>";
$sExcel .= "<td>".$t['id']."</td>";
if($t['ClasificacionId']){
$sExcel .= "<td>";
foreach($t['ClasificacionId'] as $c){
$sExcel .= " ".$c['nombre']." ";
}
$sExcel .= "</td>";
}
if($t['AreaId']){
$sExcel .= "<td>";
foreach($t['AreaId'] as $a){
$sExcel .= " ".$a['nombre']." ";
}
$sExcel .= "</td>";
}
if($t['EspecialidadId']){
$sExcel .= "<td>";
foreach($t['EspecialidadId'] as $e){
$sExcel .= " ".$e['nombre']." ";
}
$sExcel .= "</td>";
}
if($t['grupos']){
$sExcel .= "<td>";
foreach($t['grupos'] as $g){
$sExcel .= " ".$g['nombre']." ";
}
$sExcel .= "</td>";
}
$sExcel .= "</tr>";

}
$sExcel .= "</table>";
echo $sExcel;
}
?>


Comentarios

Entradas populares