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
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.
<?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
Publicar un comentario