PHP - exportat a Excel con 2 decimales

   
Vista:

exportat a Excel con 2 decimales

Publicado por jhean carlos (113 intervenciones) el 25/09/2014 23:17:48
holas les comento que quiero exportar a Excel una consulta en SQL, me funciona el Exporta a excel

Pero tengo una operación matematica que me sale con muchos decimales y solo quiero que se muestre solo 2 decimales al Exportar a Excel.

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
<?php
 
include("../../../coneccion_bd.php");
 
$tramo				= $_POST['tramo'];
$numero_certificado = $_POST['numero_certificado'];
 
$sql = "SELECT
		microempresa.cod_microempresa,
		microempresa.nombre_microempresa,
		microempresa.departamento,
		microempresa.tramo,
		programacion.tipo_prog,
		programacion.cod_act,
		programacion.actividad,
		programacion.cantidad,
		programacion.dias,
		programacion.hombres,
		programacion.avance_porcentaje
		FROM
		microempresa ,
		programacion
		WHERE
		microempresa.tramo =  '$tramo' AND
		programacion.numero_certificado =  '$numero_certificado' AND
		microempresa.cod_microempresa =  programacion.cod_microempresa
		ORDER BY
		microempresa.nombre_microempresa ASC
		";
 $resultado = mysql_query ($sql, $conexion) or die (mysql_error ());
 $registros = mysql_num_rows ($resultado);
 
 if ($registros > 0)
 {
   require_once 'PHPExcel_/Classes/PHPExcel.php';
   $objPHPExcel = new PHPExcel();
 
   //Informacion del excel
   $objPHPExcel->
    getProperties()
        ->setCreator("ingenieroweb.com.co")
        ->setLastModifiedBy("ingenieroweb.com.co")
        ->setTitle("Exportar excel desde mysql")
        ->setSubject("Ejemplo 1")
        ->setDescription("Documento generado con PHPExcel")
        ->setKeywords("ingenieroweb.com.co  con  phpexcel")
        ->setCategory("ciudades");
 
	$b=1;
 	$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$b,'codigo Microempresa')
			->setCellValue('B'.$b,'Microempresa')
			->setCellValue('C'.$b,'Departamento')
			->setCellValue('D'.$b,'Tramo')
			->setCellValue('E'.$b,'Quincena')
			->setCellValue('F'.$b,'Codigo Actividad')
			->setCellValue('G'.$b,'Actividad')
			->setCellValue('H'.$b,'Cantidad')
			->setCellValue('I'.$b,'Dias')
			->setCellValue('J'.$b,'Hombres')
			->setCellValue('K'.$b,'Avance %')
			->setCellValue('L'.$b,'Rendimiento');
    $i = 2;
   while ($registro = mysql_fetch_object ($resultado))
   {
      $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$i, $registro->cod_microempresa)
			->setCellValue('B'.$i, $registro->nombre_microempresa)
			->setCellValue('C'.$i, $registro->departamento)
			->setCellValue('D'.$i, $registro->tramo)
			->setCellValue('E'.$i, $registro->tipo_prog)
			->setCellValue('F'.$i, $registro->cod_act)
			->setCellValue('G'.$i, $registro->actividad)
			->setCellValue('H'.$i, $registro->cantidad)
			->setCellValue('I'.$i, $registro->dias)
			->setCellValue('J'.$i, $registro->hombres)
			->setCellValue('K'.$i, $registro->avance_porcentaje)
			->setCellValue('L'.$i, '=H'.$i.'/I'.$i.'/J'.$i.'');
      $i++;
   }
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="rendimientos.xls"');
header('Cache-Control: max-age=0');
 
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');
exit;
mysql_close ();
?>
----------------------------------------------------------------------------------------------

->setCellValue('L'.$i, '=H'.$i.'/I'.$i.'/J'.$i.'');


esta parte de codigo donde se muestra la columna de varios decimales

necesito que solo se muestre 2 decimales redondeado cuando lo Exporte a Excel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

exportat a Excel con 2 decimales

Publicado por Gonzalo (338 intervenciones) el 26/09/2014 02:52:09
ese codigo es exelente, gracias por compartirlo.

si soporta formulas igual que excel tal vez setCellValue('L'.$i, '=round(H'.$i.'/I'.$i.'/J'.$i.')'); pudiera funcionar.

salu2
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

exportat a Excel con 2 decimales

Publicado por jhean carlos (113 intervenciones) el 26/09/2014 14:43:02
te comento que no me funciona intente con la formmula tambien de excel =REDONDEAR( );
tampoco me funciono
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

exportat a Excel con 2 decimales

Publicado por Gonzalo (338 intervenciones) el 26/09/2014 17:17:04
las funciones en español suelen no ser correctas al aplicarlas en excel, lo mejor es usar esas funciones en ingles.

ok, intenta con este metodo

->setCellValue('L'.$i, '=ROUND( RC[-4]/RC[-3]/RC[-2] , 2) ');

y si no funciona, bueno, lo ultimo que me queda es que calcules la formula y la escribas directo en esa celda.

->setCellValue('B'.$i, $registro->nombre_microempresa)
->setCellValue('C'.$i, $registro->departamento)
->setCellValue('D'.$i, $registro->tramo)
->setCellValue('E'.$i, $registro->tipo_prog)
->setCellValue('F'.$i, $registro->cod_act)
->setCellValue('G'.$i, $registro->actividad)
->setCellValue('H'.$i, $registro->cantidad)
->setCellValue('I'.$i, $registro->dias)
->setCellValue('J'.$i, $registro->hombres)
->setCellValue('K'.$i, $registro->avance_porcentaje)
$Total=round( $registro->cantidad / $registro->dias / $registro->hombres , 2 );
->setCellValue('L'.$i, $Total);

salu2.
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

exportat a Excel con 2 decimales

Publicado por jhean carlos (113 intervenciones) el 26/09/2014 22:08:37
te comento que tampoco me funciono, solo me sale mensaje que hay error en la fila que adicionaste.
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

exportat a Excel con 2 decimales

Publicado por jhean carlos (113 intervenciones) el 26/09/2014 22:09:07
te comento que tampoco me funciono, sale un mensaje de error en la fila que adicionaste.
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