<?php
include('seguridad.php');
include('conexion.php');
require('fpdf/fpdf.php');
// Se agrega la libreria PHPExcel
require_once 'excell/Classes/PHPExcel.php';
require_once 'excell/Classes/PHPExcel/Writer/Excel5.php'; // Para otros bajo la versión xls
require_once 'excell/Classes/PHPExcel/Writer/Excel2007.php';
$var3='2015-03-11';
$sql = "SELECT
presupuestos.Id_Presupuesto AS Id_Pre,
presupuestos.Confirmacion as Estado,
presupuestos.Ref_Pres AS Presupuesto,
presupuestos.Fecha_fin AS Fecha,
presupuestos.Id_Cliente,
presupuestos.Total_Pres AS Coste,
presupuestos.Depos AS Deposito,
clientes.Apellidos AS Cliente
FROM clientes INNER JOIN presupuestos ON clientes.Id_clientes = presupuestos.Id_Cliente
WHERE presupuestos.Confirmacion != 3 AND YEAR(presupuestos.Fecha_fin) = YEAR('".$var3."') AND WEEK(presupuestos.Fecha_fin,7) = WEEK('".$var3."',7)";
// Definimos zona horaria
// Limitamos el acceso solo desde web.
if (PHP_SAPI == 'cli')
die('Este archivo solo se puede ver desde un navegador web');
// Se crea el objeto PHPExcel
$objPHPExcel = new PHPExcel();
// Se asignan las propiedades del libro
$objPHPExcel->getProperties()->setCreator("Codedrinks") // Nombre del autor
->setLastModifiedBy("Julio Díaz") //Ultimo usuario que lo modificó
->setTitle("Tesoreria de clientes") // Titulo
->setSubject("Generar informe de tesoreria de clientes") //Asunto
->setDescription("Informe de debito de clientes a los servicios") //Descripción
->setKeywords("Informe tesoreria clientes") //Etiquetas
->setCategory("Informe excel"); //Categorias
// Variables para los títulos del informe
$tituloReporte = "Tesoreria de clientes de fecha ";
$titulosColumnas = array('PRESUPUESTO', 'CLIENTE', 'SERVICIO', 'USUARIOS', 'PVP', 'TOTAL');
// Se combinan las celdas A1 hasta F1, para colocar ahí el titulo del reporte
$objPHPExcel->setActiveSheetIndex(0)
->mergeCells('A1:F1');
// Se agregan los titulos del reporte
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1',$tituloReporte) // Titulo del reporte
->setCellValue('A3', $titulosColumnas[0]) //Titulo de las columnas
->setCellValue('B3', $titulosColumnas[1])
->setCellValue('C3', $titulosColumnas[2])
->setCellValue('D3', $titulosColumnas[3])
->setCellValue('E3', $titulosColumnas[4])
->setCellValue('F3', $titulosColumnas[5]);
//Se agregan los datos de los CLIENTES
$i = 4; //Numero de fila donde se va a comenzar a rellenar
while ($fila = $cs->fetch_array()) {
$Diferencia = $fila['Coste'] - $fila['Deposito'];
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $fila['Presupuesto'])
->setCellValue('B'.$i, $fila['Cliente'])
->setCellValue('C'.$i, $fila['Cliente'])
->setCellValue('D'.$i, $fila['Coste'])
->setCellValue('E'.$i, $fila['Deposito'])
->setCellValue('F'.$i, $Diferencia);
$i++;
}
// Aplicamos formato a las celdas;
$estiloTituloReporte = array( 'name' => 'Verdana',
'bold' => true,
'italic' => false,
'strike' => false,
'size' =>16,
'rgb' => 'FFFFFF'
)
),
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'argb' => 'FF220835')
),
'style' => PHPExcel_Style_Border::BORDER_NONE
)
),
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
'rotation' => 0,
'wrap' => TRUE
)
);
$estiloTituloColumnas = array( 'name' => 'Arial',
'bold' => true,
'rgb' => 'FFFFFF'
)
),
'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
'rotation' => 90,
'rgb' => 'c47cf2'
),
'argb' => 'FF431a5d'
)
),
'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
'rgb' => '143860'
)
),
'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
'rgb' => '143860'
)
)
),
'horizontal'=> PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
'wrap' => TRUE
)
);
$estiloInformacion = new PHPExcel_Style();
$estiloInformacion->applyFromArray( array( 'name' => 'Arial',
'rgb' => '000000'
)
),
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'argb' => 'FFd9b7f4')
),
'style' => PHPExcel_Style_Border::BORDER_THIN ,
'rgb' => '3a2a47'
)
)
)
));
// Arrays en los cuales se define todo el conjunto de formato que deseamos aplicar a las celdas.
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->applyFromArray($estiloTituloReporte);
$objPHPExcel->getActiveSheet()->getStyle('A3:D3')->applyFromArray($estiloTituloColumnas);
$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A4:F".($i-1));
// asignar el ancho de las columnas de forma automática
for($i = 'A'; $i <= 'F'; $i++){
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension($i)->setAutoSize(TRUE);
}
// Se asigna el nombre a la hoja
$objPHPExcel->getActiveSheet()->setTitle('Clientes');
// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
$objPHPExcel->setActiveSheetIndex(0);
// Inmovilizar paneles
//$objPHPExcel->getActiveSheet(0)->freezePane('A4');
$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,6);
// Se manda el archivo al navegador web, con el nombre que se indica, en formato 2007
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="Informe clientes.xlsx"'); header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
?>