PHP - funcion para llevar a excel

   
Vista:

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 18/06/2014 23:04:40
no me doy por vencido Estoy desarrollando estos codigos para enviar de php a excel:
createExcel que recibe dos parámetros,
1
2
3
<?php
createExcel("excelname.xls", array);
 ?>

desde aqui llamo de la base de datos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require_once("excel.php");
require_once("excel-ext.php");
// Consultamos los datos desde Base de DAtos Postgresql
$conEmp = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
 
$queEmp = "SELECT * FROM deuda WHERE deuda.cedula = '{$_POST['cedula']}'  ORDER BY nroapto";
$resEmp = @pg_query($queEmp, $conEmp);
// Creamos el array con los datos
while($datatmp = @pg_fetch_array($resEmp))
{
	$data[] = $datatmp;
}
// Generamos el Excel  
createExcel("excel-mysql.xls", $data);
exit;
?>

esta es el archivo excel-ext.php:
1
2
3
4
5
6
7
8
9
10
11
<?php
function createExcel($filename, $arrydata) {
	header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
	header ("Cache-Control: no-cache, must-revalidate");
	header ("Pragma: no-cache");
	header ("Content-type: application/x-msexcel");
	header ("Content-Disposition: attachment; filename=\"" . $filename . "\"" );
}
 
?>

pero me trae la hoja de excel en blanco, a ver si pueden ayudarme por favor si pueden comentar.
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

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 20/06/2014 02:29:16
Bueno por lo visto no hay una posible ayuda. Saludos
Nota: aclaro, de funciones muy poco se y casi siempre me confundo.
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

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 20/06/2014 21:09:15
Hola Xve, podrias ayudarme? y disculpa la pregunta.
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 xve

funcion para llevar a excel

Publicado por xve (5518 intervenciones) el 21/06/2014 11:57:21
Hola Zendi, la verdad es que no se mucho del tema, por eso no e intervenido en estos hilos...

Viendo tu código, no se que intentas hacer, pero por lo que veo, pasas un array de valores a la función createExcel, en la cual no haces nada con ellos, por lo que no se muy bien que te tiene que mostrar el archivo excel.

No se exactamente como mostrar los datos, yo recuerdo hace tiempo, que lo hacia con una <tabla>, y cada celda de la tabla, era una celda del excel...

Aqui tienes un ejemplo: http://www.lawebdelprogramador.com/codigo/PHP/1769-Crear_un_archivo_de_MS_Excel_desde_PHP.html

Coméntanos si te sirve, ok?
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

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 21/06/2014 21:36:35
Hola Xve, Sabia que responderias, bueno en realidad el codigo que enviaste si funciona, pero lo aplique a mi codigo pero no lo hace.


pero la idea es que cuando se presione el enlace que esta en negrita se active este IF que esta en negrita y se forme el archivo excel,
esto lo hice yo en otro codigo y si funcionó, pero aqui no lo hace no se si tu puedes ver si falta algo en el enlace.

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
if (isset($_GET['excel']))
{
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=result.xls ");
header("Content-Transfer-Encoding: binary ");
}
   $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Consulta de la Deuda por C&eacute;dula</title>
</head>
<script language="JavaScript">
 
</script>
<style type="text/css">
  .sr {
    background-color: #FFFFCF;
    color: #000000;
    font-family: Arial;
    font-size: 12px;
  }
</style>
 
<body>
<a href='consultadeuda.php?excel'>Excel</a>
 
<form action="consultadeuda.php" method="post">
<TABLE align="center" class="div1">
<tr align="center">
   <td>
    <SPAN CLASS='sub'>C&eacute;dula:</SPAN>
     <input TYPE="text" NAME="cedula" SIZE="10" maxlength="10">
     <input TYPE="submit" NAME="buscar" VALUE="Buscar">
 
<INPUT TYPE="BUTTON" VALUE="Salir" ONCLICK="window.location.href='menu1.php'">
 
 
</TD>
</TR>
</TABLE>
 
<?php
 
if ($_POST['cedula'] && $_POST['buscar'])
     {
        $consulta2 = "SELECT * FROM deuda WHERE deuda.cedula = '{$_POST['cedula']}'  ORDER BY nroapto";
        $consulta3 = @pg_query($connect,$consulta2);
	 }
$nombre = "SELECT apellidos,nombres FROM propietarios WHERE propietarios.cedula = '{$_POST['cedula']}'";
$nombre1 = @pg_query($connect,$nombre);
while ($nombre =@pg_fetch_array($nombre1)):
       $apellidos = $nombre['apellidos'];
	   $nombres   = $nombre['nombres'];
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <td width ='50' align='center'>Apellidos
	              <td width ='50' align='center'>Nombres
              </tr>";
           echo "  <tr>
				       <td width ='100'>$apellidos</td>
				       <td width ='100'>$nombres</td>
				   </tr>
    			</table><br>";
endwhile;
 
 
echo"<table align='center' border='1' bordercolor='#00CC99' bgcolor='#99CC00'>
       <tr>
           <th width='100' align='center'>Apartamento
           <th width='100' align='center'>Fecha
           <th width='100' align='center'>Monto
	   </tr>
	 </table>";
 
while($select2   = @pg_fetch_array($consulta3)):
	  $nroapto   = $select2['nroapto'];
      $nombres   = $select2['nombres'];
	  $fecha = $select2['fecha'];
      $anio  = substr($fecha,0,4);
      $mes   = substr($fecha,5,2);
	  $dia   = substr($fecha,8,2);
      $fecha2 = $anio."-".$mes."-".$dia;
 
	  $monto = $select2['monto'];
       echo"<table align='center' border='1' bordercolor='#FFCC99' bgcolor='#99CC00'>
	        <tr class='sr'>
 
              <td width='100' align='center'><input type='text' value='$nroapto' readonly='true' name='nroapto'>
	          <td width='100' align='center'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'>
			  <td width='100' align='right'>$monto
   	          </td>";
	     	  $total +=$monto;
endwhile;
		  if (isset($_POST['valor'])):
     		 	    echo $totalmes = $_POST['monto']-$_POST['valor'];
				 if (isset($totalmes)):
   				    $fecha2 = substr($_POST['fecha'],6,4).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],0,2);
                    $actualiza = "UPDATE deuda set monto=$totalmes WHERE deuda.cedula = '{$_POST['cedula']}' and deuda.fecha = '$fecha2'";
                    $connect2 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
		            $cambiar = @pg_query($connect2,$actualiza);
				 endif;
          endif;
echo"  		    </tr></table>";
echo "<br><table align='center' border='1' bordercolor='#FFCC99' bgcolor='#99CC00'>
	        <tr class='sr'>
	          <td width='100' style='color:#000000'>Total
			  <td width='100' align='right'>$total
  		    </tr>";
 
 
?>
</form>
 
 
</body>
</html>
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

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 22/06/2014 20:03:47
que tal xve, viste algo inusual o que faltaria en mi codigo? 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

funcion para llevar a excel

Publicado por zendi (824 intervenciones) el 29/06/2014 22:04:29
no hay nadie que ayude, por favor.
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 xve

funcion para llevar a excel

Publicado por xve (5518 intervenciones) el 30/06/2014 11:04:08
Hola Zendi, cuando generas un archivo de excel, no puedes poner cabeceras, ni código javascript, ni css, ni el DOCTYPE, únicamente el código que haga referencia al archivo de excel...

Si te fijas, en el código que te mostré, no hay nada de html que no sea estrictamente para el contenido del archivo de excel.... solo pon la tabla y ya esta, ni formulario ni nada... Excel no lo entiende!!!

Creo que si lo quitas todo, debería de funcionar-te...
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