It happens that I execute this query
to export to Excel
the information:
SELECT IFNULL(s.id_servicio,'Total') AS id_servicio,
IFNULL(s.fecha_servicio,'General') AS fecha_servicio,
c.nombre_conductor,c.apellido_conductor,
d.nombre_distrito,u.nombre_urbanizacion,
SUM(s.precio) AS precio,
ds.nombre_tipo
FROM servicios s
INNER JOIN distrito d ON s.id_distrito = d.id_distrito
INNER JOIN urbanizacion u ON s.id_urbanizacion = u.id_urbanizacion
INNER JOIN conductor c ON s.id_conductor = c.id_conductor
INNER JOIN detalle_servicio ds ON s.tipo_servicio = ds.tipo_servicio
WHERE c.id_conductor = $i_conductor AND s.fecha_servicio BETWEEN
'$i_fecha_inicio_format2' AND '$i_fecha_fin_format2'
GROUP BY s.fecha_servicio,s.id_servicio ASC WITH ROLLUP
The result
Then I would like the part that says, fecha,destino
, type to be empty.
How can I do it? I am using as report engine PHPExcel
.
Here is the PHPExcel code:
/** Incluye PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
// Crear nuevo objeto PHPExcel
$objPHPExcel = new PHPExcel();
// Propiedades del documento
$objPHPExcel->getProperties()->setCreator("Reporte")
->setLastModifiedBy("Reporte")
->setTitle("Reporte de Ingresos por Conductor")
->setSubject("Reporte de Ingresos por Conductor")
->setDescription("Reporte de Ingresos por Conductor detalladp.")
->setKeywords("office 2013 openxml php")
->setCategory("Reporte de Ingresos por Conductor");
// Combino las celdas desde A1 hasta E1
$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:F1');
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'REPORTE DE INGRESOS POR CONDUCTOR')
->setCellValue('A2', 'ID SERVICIO')
->setCellValue('B2', 'FECHA')
->setCellValue('C2', 'CONDUCTOR')
->setCellValue('D2', 'DESTINO')
->setCellValue('E2', 'TIPO')
->setCellValue('F2', 'PRECIO');
// Fuente de la primera fila en negrita
$boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));
$objPHPExcel->getActiveSheet()->getStyle('A1:F2')->applyFromArray($boldArray);
//Ancho de las columnas
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
/*Extraer datos de MYSQL*/
# conectare la base de datos
$i_conductor = $_POST['i_conductor'];
$i_fecha_inicio = $_POST['i_fecha_inicio'];
$i_fecha_inicio_format = strtotime($i_fecha_inicio);
$i_fecha_inicio_format2 = date('Y-m-d',$i_fecha_inicio_format);
$i_fecha_fin = $_POST['i_fecha_fin'];
$i_fecha_fin_format = strtotime($i_fecha_fin);
$i_fecha_fin_format2 = date('Y-m-d',$i_fecha_fin_format);
include 'abrir_conexion.php';
$sql="SELECT IFNULL(s.id_servicio,' ') AS id_servicio,s.fecha_servicio,c.nombre_conductor,c.apellido_conductor,d.nombre_distrito,u.nombre_urbanizacion,SUM(s.precio) AS precio,ds.nombre_tipo FROM servicios s
INNER JOIN distrito d ON s.id_distrito = d.id_distrito
INNER JOIN urbanizacion u ON s.id_urbanizacion = u.id_urbanizacion
INNER JOIN conductor c ON s.id_conductor = c.id_conductor
INNER JOIN detalle_servicio ds ON s.tipo_servicio = ds.tipo_servicio WHERE c.id_conductor = $i_conductor AND s.fecha_servicio BETWEEN '$i_fecha_inicio_format2' AND '$i_fecha_fin_format2' GROUP BY s.fecha_servicio,s.id_servicio ASC WITH ROLLUP";
$query=mysql_query($sql);
$cel=3;//Numero de fila donde empezara a crear el reporte
while ($row=mysql_fetch_array($query)){
$id_servicio = $row["id_servicio"];
$fecha = $row["fecha_servicio"];
$fecha_format = strtotime($fecha);
$fecha_format2 = date('d-m-Y',$fecha_format);
$conductor = $row["nombre_conductor"]. " " .$row["apellido_conductor"];
$destino = $row["nombre_distrito"]. "-" .$row["nombre_urbanizacion"];
$tipo = $row["nombre_tipo"];
$precio = $row["precio"];
$a="A".$cel;
$b="B".$cel;
$c="C".$cel;
$d="D".$cel;
$e="E".$cel;
$f="F".$cel;
// Agregar datos
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue($a, $id_servicio)
->setCellValue($b, $fecha_format2)
->setCellValue($c, $conductor)
->setCellValue($d, $destino)
->setCellValue($e, $tipo)
->setCellValue($f, $precio);
$cel+=1;
}
/*Fin extracion de datos MYSQL*/
$rango="A2:$f";
$styleArray = array('font' => array( 'name' => 'Calibri','size' => 10),
'borders'=>array('allborders'=>array('style'=> PHPExcel_Style_Border::BORDER_THIN,'color'=>array('argb' => 'FFF')))
);
$objPHPExcel->getActiveSheet()->getStyle($rango)->applyFromArray($styleArray);
// Cambiar el nombre de hoja de cálculo
$objPHPExcel->getActiveSheet()->setTitle('Reporte');
// Establecer índice de hoja activa a la primera hoja , por lo que Excel abre esto como la primera hoja
$objPHPExcel->setActiveSheetIndex(0);
// Redirigir la salida al navegador web de un cliente ( Excel5 )
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Reporte Ingresos por Conductor.xls"');
header('Cache-Control: max-age=0');
// Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
header('Cache-Control: max-age=1');
// Si usted está sirviendo a IE a través de SSL , a continuación, puede ser necesaria la siguiente
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;