PHP - registros en PHPExcel

 
Vista:

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 22/08/2018 22:01:09
Estoy creando un codigo para un reporte en PHPExcel, pero actualmente el reporte solo controla un determinado numero de registros en este caso solo controla o sumariza 14 registros. Quisiera saber como puedo ajustarlo para una cantidad indefinida de registros.

Aqui tengo el trozo de codigo donde se especifica la totalizacion de los registros en la negrita:

en la columna B23 se sumarizan el total de los 14 registros, pero y si para el proximo aumentase a mas de 14 registros ¿COMO PUDIERA CONTROLAR ESE POSIBLE CASO?
La idea es que sea mas flexible el manejo de los registros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while($selectre = @pg_fetch_array($resultreser)){
    $totalreserva1 = $selectre['totalreserva'];
}
$consulta2 = "SELECT * FROM vcobro ORDER BY descripcion";
$actualiza = @pg_query($connect,$consulta2);
while($dato=pg_fetch_array($actualiza)){
    $objSheet->setCellValue('A'.$numero, $dato['descripcion']);
    $objSheet->setCellValue('B'.$numero, $dato['monto']);
 
    $objSheet->setCellValue('B23','=sum(B9:B22)');
 
    $ntotal+=$dato['monto'];
    $alic = $dato['monto'] *.10 * $alicuota / 10;
    $objSheet->setCellValue('D'.$numero,$alic);
    $alicu +=$alic;
 
    $calreser = $total * .10;
    $totaldistr = $total + $calreser;
    $numero++;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

registros en PHPExcel

Publicado por Yamil Bracho (888 intervenciones) el 22/08/2018 22:52:58
Cual es el valor inicial de la variable $numero ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 22/08/2018 23:05:53
el valor de $numero = 9;
Aqui esta el trozo de codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$numero = 9;
$alicuota = 1.08191;
$reserva = "SELECT SUM(vreserva.monto) AS totalreserva FROM vreserva";
$resultreser = @pg_query($connect,$reserva);
while($selectre = @pg_fetch_array($resultreser)){
    $totalreserva1 = $selectre['totalreserva'];
}
$consulta2 = "SELECT * FROM vcobro ORDER BY descripcion";
$actualiza = @pg_query($connect,$consulta2);
while($dato=pg_fetch_array($actualiza)){
    $objSheet->setCellValue('A'.$numero, $dato['descripcion']);
    $objSheet->setCellValue('B'.$numero, $dato['monto']);
 
    $objSheet->setCellValue('B23','=sum(B9:B22)');
 
    $ntotal+=$dato['monto'];
    $alic = $dato['monto'] *.10 * $alicuota / 10;
    $objSheet->setCellValue('D'.$numero,$alic);
    $alicu +=$alic;
    $calreser = $total * .10;
 
    $totaldistr = $total + $calreser;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

registros en PHPExcel

Publicado por Yamil Bracho (888 intervenciones) el 22/08/2018 23:22:47
$numero te tiene la fila a la que se va a escribir, asi que cuando sales del ciclo debe valer 23 en el caso de que tengas 14 registros. Entonces la fila de sumatoria total debe ser

1
$objSheet->setCellValue("B{$numero}","=sum(B9:{$numero - 1})");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 22/08/2018 23:30:26
En este caso son 14 registros y si son mas de eso; debo escribir

1
$objSheet->setCellValue("B{$numero}","=sum(B9:{$numero - 1})");
despues del while o dentro del while? es lo que no se donde colocarlo y disculpa mi desconocimiento, el asunto es que estoy aprendiendo a manejar esta libreria.

Es decir este es el 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
while($selectre = @pg_fetch_array($resultreser)){
 
    $totalreserva1 = $selectre['totalreserva'];
 
}
 
$consulta2 = "SELECT * FROM vcobro ORDER BY descripcion";
 
$actualiza = @pg_query($connect,$consulta2);
 
while($dato=pg_fetch_array($actualiza)){
 
    $objSheet->setCellValue('A'.$numero, $dato['descripcion']);
 
    $objSheet->setCellValue('B'.$numero, $dato['monto']);
 
 
 
    $objSheet->setCellValue('B23','=sum(B9:B22)');
 
    $ntotal+=$dato['monto'];
 
    $alic = $dato['monto'] *.10 * $alicuota / 10;
 
    $objSheet->setCellValue('D'.$numero,$alic);
 
    $alicu +=$alic;
 
 
 
    $calreser = $total * .10;
 
    $totaldistr = $total + $calreser;
 
    $numero++;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 22/08/2018 23:52:52
Gracias, lo pondré en practica y te aviso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 25/08/2018 16:47:55
Hola Yamil, ciertamente funcionó lo que me indicaste. Pero Como haría para sumar la columna? Mucho te agradezco la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

registros en PHPExcel

Publicado por Mauro (1034 intervenciones) el 29/08/2018 20:56:36
No comprendo a lo que te refieres con "sumar la columna"... lo que se me ocurre es que podría ser más eficiente si dejas que las cuentas las haga el Excel (Del mismo modo que dejas que la fórmula de la sumatoria la calcule Excel).

Tu script debería limitarse a traer los datos de la base y generar la planilla.

Un par de observaciones de paso:

1 - No te conviene usar
1
@pg_fetch_array
si no
1
pg_fetch_array
. La "@" oculta los errores que pueden generarse y, si bien es molesto que se vean a simple vista, es mucho peor no verlos cuando ocurren :p
2 - La librería PHPExcel está obsoleta, hay una nueva versión (Muy similar) llamada PHPSpreadSheet. Te dejo acá un artículo que puede resultarte interesante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 31/08/2018 21:36:57
Hola Mauro, ya resolví el problema, gracias por tu atencion. Ahora bien el PHPSpreadSheet es igual phpexcel?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

registros en PHPExcel

Publicado por Mauro (1034 intervenciones) el 01/09/2018 17:11:00
Hola Zendi:

Buenísimo que hayas resuelto el tema!

Respecto de PhpSpreadsheet, no es exactamente igual a PHPExcel aunque se parece mucho (De hecho, PHPSpreadSheet es el sucesor de PHPExcel).

Una caraterística interesante de PHPSpreadSheet es que permite manejar varios formatos diferentes (No sólo MS Excel).

Por otra parte, PHPSpreadSheet pertenece a un paquete de librerías para manejar todos los productos de MSOffice.

Puntualmente por el tema de PHPSpreadSheet te dejo nuevamente el link al artículo que te comentaba.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

registros en PHPExcel

Publicado por zendi (117 intervenciones) el 03/09/2018 16:31:13
Que bien muy buena la herramienta.

Enviame tu cta de correo por favor para contacatrte mejor, yo soy desarrollador y tengo varias aplicaciones que he desarrollado, quisiera habalr con respecto a eso.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar