como pasar a un excel una consulta con mas de 80000 registros?
Publicado por Eduardo (1 intervención) el 25/09/2017 17:30:00
estoy intentando crear un excel apartir de una base de datos mi problema es que al intentar crear el excel despues de realizar la consulta este tarda demasiado y cuando concluye me dice que el formato esta mal y me causa un error este es mi codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
$conexion = new mysqli('localhost','root','','proyectovw');
if (mysqli_connect_errno()) {
printf("La conexión con el servidor de base de datos falló: %s\n", mysqli_connect_error());
exit();
}
$consulta = "SELECT NAVE,PROYECTO,PROCESO,LINEA,AFO,NOMBREPADRE,MODELOBEMIPADRE,DESCRIPCION,CANTPADRES,NOMBREEQUIPO,MARCAEQUIPO,TYPE,NUMSERIE,DESCRIPCIONCOMPLEMENTARIA,MAXIMO,CANTELEMENTO,NOMENCLATURA,NUMTABLERO,OBSERVACIONES,NUMINVENTARIO FROM datos";
$resultado = $conexion->query($consulta);
$registros = mysqli_num_rows($resultado);
/** Se agrega la libreria PHPExcel */
require_once 'lib/PHPExcel/PHPExcel.php';
date_default_timezone_set('America/Mexico_City');
if($registros > 0 )
{
// Se crea el objeto PHPExcel
$objPHPExcel = new PHPExcel();
$tituloReporte = "Levantamiento de tiguan";
// Se agregan los titulos del reporte
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1',$tituloReporte)
->setCellValue('A3', "NAVE")
->setCellValue('B3', "PROYECTO")
->setCellValue('C3', "PROCESO")
->setCellValue('D3', "LINEA")
->setCellValue('E3', "AFO")
->setCellValue('F3', "NOMBRE DEL PADRE")
->setCellValue('G3', "'MODELO/#ro/BEMI DEL PADRE")
->setCellValue('H3', "DESCRIPCION COMPLEMENTARIA")
->setCellValue('I3', "CANT. PADRES")
->setCellValue('J3', "NOMBRE DE EQUIPO")
->setCellValue('K3', "MARCA DE EQUIPO")
->setCellValue('L3', "MODELO DE QUIPO")
->setCellValue('M3', "NO. SERIE")
->setCellValue('N3', "DESCRIPCION COMPLEMENTARIA")
->setCellValue('O3', "#RO DE PARTE VW (Maximo)")
->setCellValue('P3', "CANTIDAD DE ELEMENTO")
->setCellValue('Q3', "NOMENCLATURA DEL EQUIPO")
->setCellValue('R3', "NO. TABLERO")
->setCellValue('S3', "OBSERVACIONES")
->setCellValue('T3', "#RO DE INVENTARIO");
//Se agregan los datos de la BD
$i = 4;
while ($fila = mysqli_fetch_object($resultado))
{
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $fila->NAVE)
->setCellValue('B'.$i, $fila->PROYECTO)
->setCellValue('C'.$i, $fila->PROCESO)
->setCellValue('D'.$i, $fila->LINEA)
->setCellValue('E'.$i, $fila->AFO)
->setCellValue('F'.$i, $fila->NOMBREPADRE)
->setCellValue('G'.$i, $fila->MODELOBEMIPADRE)
->setCellValue('H'.$i, $fila->DESCRIPCION)
->setCellValue('I'.$i, $fila->CANTPADRES)
->setCellValue('J'.$i, $fila->NOMBREEQUIPO)
->setCellValue('K'.$i, $fila->MARCAEQUIPO)
->setCellValue('L'.$i, $fila->TYPE)
->setCellValue('M'.$i, $fila->NUMSERIE)
->setCellValue('N'.$i, $fila->DESCRIPCIONCOMPLEMENTARIA)
->setCellValue('O'.$i, $fila->MAXIMO)
->setCellValue('P'.$i, $fila->CANTELEMENTO)
->setCellValue('Q'.$i, $fila->NOMENCLATURA)
->setCellValue('R'.$i, $fila->NUMTABLERO)
->setCellValue('S'.$i, $fila->OBSERVACIONES)
->setCellValue('T'.$i, $fila->NUMINVENTARIO);
$i++;
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="ejemplo1.xlsx"');
header('Cache-Control: max-age=0');
$callStartTime = microtime(true);
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
exit;
mysql_close ();
Valora esta pregunta
0