PHP - reporte en excel

   
Vista:
Imágen de perfil de Hfr

reporte en excel

Publicado por Hfr (84 intervenciones) el 28/04/2016 18:08:04
Hola chicos.
tengo un formulario en un archivo de excel, a ese formulario tengo que adicionarle los datos de la base base datos
alguien sabe como lo puedo hacerlo sin necesidad de construir celda por celda fila por fila, yo hice uno con rtf y word y me quedo muy ahora me piden haga lo mismo pero con excel,
he estado investigando pero los resultados es construirlo celda por celda,
alguien me puede sugerir un sitio , post, tutorial, donde yo pueda hacer el reporte.

porfis una manito...
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
Imágen de perfil de Hfr

reporte en excel

Publicado por Hfr (84 intervenciones) el 02/05/2016 15:39:10
Hola investigue un poco y aqui tengo lo que estaba buscando
de esta forma con las librerias de php excel
puedo abrir una archivo excel, editarlo y bajar una copia con datos de la dbo.

funciona bn.

pero , siempre ay un pero

me arroja estas advertencias
Warning: preg_match() expects parameter 2 to be string, array given in C:\xampp\htdocs\pruebas\librerias\excel\Classes\PHPExcel\Cell\DefaultValueBinder.php on line 95

esto ocurre Cuando traigo datos de la dbo que no son Strgin como fechas enteros y otros.
voy a probar convirtiendo las variables de la consulta a string.
si no funciona
probare acomodándole los campos del archivo
es decir que si en la celda 18 la consulta pega un date en el archivo lo dejare como date o fecha creo que sale jejejeje.



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
<?php
 // cadenas d conxion a la dbo  
include ("../con_mysql.php");
require_once ('../../librerias/excel/Classes/PHPExcel.php'); //  liberrias de php ecxel  
 
 
$linkx = new conexion();
$xCon= $linkx->conectar();
 
$consulta= mysqli_query($xCon, "select   dato from tablax  where dato = '1'");  //    consulta  de la dbo
while ($fila= mysqli_fetch_array($consulta))
 
// cicolo para guardar los datos de la consultya y utilizarlas 
	{
 
 
	$Datosx=$fila['dato'];
 
 
	}
//FUNCION PAR A GENERAR UN CODIGO ALEATRIO. DEL REPORTE 
 
	function generarCodigo($longitud) {
 $key = '';
 $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
 $max = strlen($pattern)-1;
 for($i=0;$i < $longitud;$i++) $key .= $pattern{mt_rand(0,$max)};
 return $key;
}
 
//Ejemplo de uso
 
echo $CODIGO=generarCodigo(6); // genera un código de 6 caracteres de longitud.
// Camino a los include
set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/');
// PHPExcel
 
// PHPExcel_IOFactory
include '../../librerias/excel/Classes/PHPExcel/IOFactory.php';
// Creamos un objeto PHPExcel
$objPHPExcel = new PHPExcel();
// Leemos un archivo Excel 2007
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load("reporte.xlsx");// NOMBRE DLE ARCHIVO EN LA CARPETA 
// Indicamos que se pare en la hoja uno del libro
$objPHPExcel->setActiveSheetIndex(0);
//Escribimos en la hoja en la celda B1
$objPHPExcel->getActiveSheet()  ->SetCellValue('A18',$Datosx);
 
// Color rojo al texto
 
//Guardamos el archivo en formato Excel 2007
//Si queremos trabajar con Excel 2003, basta cambiar el 'Excel2007' por 'Excel5' y el nombre del archivo de salida cambiar su formato por '.xls'
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
 
 
$objWriter->save($CODIGO."reporte.xlsx");
$variable=$CODIGO."reporte.xlsx";
?>
 
<a href="/pruebas/php/reporte_excel/<?php  echo $variable; ?>">reporte en excel </a>
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 Hfr

reporte en excel

Publicado por Hfr (84 intervenciones) el 02/05/2016 21:00:07
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
<?php
 // cadenas d conxion a la dbo  
include ("../con_mysql.php");
require_once ('../../librerias/excel/Classes/PHPExcel.php'); //  liberrias de php ecxel  
 
 
$linkx = new conexion();
$xCon= $linkx->conectar();
 
 
 
$consulta= mysqli_query($xCon, "select identificacion , nombre, apellido, sexo, edad, fecha_naci, lugar_nac, pais  from PERSONAS  where COD_PERSONA='1234567890'");
 
$row=mysqli_fetch_array($consulta,MYSQLI_NUM);
 
 
 
 
 
 
 
//FUNCION PAR A GENERAR UN CODIGO ALEATRIO. DEL REPORTE 
 
function generarCodigo($longitud) {
 $key = '';
 $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
 $max = strlen($pattern)-1;
 for($i=0;$i < $longitud;$i++) $key .= $pattern{mt_rand(0,$max)};
 return $key;
}
 
//Ejemplo de uso
 
echo $CODIGO=generarCodigo(6); // genera un código de 6 caracteres de longitud.
// Camino a los include
set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/');
// PHPExcel
 
// PHPExcel_IOFactory
include '../../librerias/excel/Classes/PHPExcel/IOFactory.php';
// Creamos un objeto PHPExcel
$objPHPExcel = new PHPExcel();
// Leemos un archivo Excel 2007
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load("reporte.xlsx");// NOMBRE del ARCHIVO EN LA CARPETA 
// Indicamos que se pare en la hoja uno del libro
$objPHPExcel->setActiveSheetIndex(0);
//Escribimos en la hoja en la celda B1
$objPHPExcel->getActiveSheet()  ->SetCellValue('A18',$row[2]."   ". $row[3] ) //nombr apellido 
								->SetCellValue('B22',$row[4])//sexo
								->SetCellValue('A20',$row[6])//fecha de  nacimiento 
								;
 
 
// Color rojo al texto
 
//Guardamos el archivo en formato Excel 2007
//Si queremos trabajar con Excel 2003, basta cambiar el 'Excel2007' por 'Excel5' y el nombre del archivo de salida cambiar su formato por '.xls'
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
 
 
$objWriter->save($CODIGO."reporte.xlsx");
$variable=$CODIGO."reporte.xlsx";
?>
 
<a href="/pruebas/php/reporte_excel/<?php  echo $variable; ?>">reporte en excel </a>

ok este ya quedo full.
los errores era por los resultados de la consulta.
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