PHP - creacion de pestañas automaticas con PHPEXCEL

 
Vista:
sin imagen de perfil
Val: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

creacion de pestañas automaticas con PHPEXCEL

Publicado por SARA (67 intervenciones) el 12/04/2021 18:09:18
buen dia, es posible generar pestañas con phpexcel de acuerdo a la base de datos, por ejemplo si se agregan nuevos clientes cada cliente tiene su propia pestaña con informacion, es posible que estas pestañas se creen automaticamente?
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: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

creacion de pestañas automaticas con PHPEXCEL

Publicado por SARA (67 intervenciones) el 12/04/2021 23:44:47
alguien que me ayude ya logre crear las hojas solo quiero asignarles un nombre de la base de datos pero me le pone el mismo nombre a todas las hojas, alguna solucion?.

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
<?php
/*Extraer datos de MYSQL*/
	# conectare la base de datos
    $con=@mysqli_connect('localhost', 'root', 'root1', 'logistica');
    if(!$con){
        die("imposible conectarse: ".mysqli_error($con));
    }
    if (@mysqli_connect_errno()) {
        die("Connect failed: ".mysqli_connect_errno()." : ". mysqli_connect_error());
    }
 
mysqli_set_charset($con, 'utf8'); //linea a colocar
 
error_reporting(0);
if (PHP_SAPI == 'cli')
	die('Este ejemplo sólo se puede ejecutar desde un navegador Web');
 
/** Incluye PHPExcel */
require_once '../PHPExcel/Classes/PHPExcel.php';
 
// Crear nuevo objeto PHPExcel
$objPHPExcel = new PHPExcel();
 
// Propiedades del documento
$objPHPExcel->getProperties()->setCreator("SISTEMAS");
 
// Establecer índice de hoja activa a la primera hoja , por lo que Excel abre esto como la primera hoja
$objPHPExcel->setActiveSheetIndex(0);
 
//establece el zoom
$objPHPExcel->getActiveSheet(0)->getSheetView()->setZoomScale(84);
 
 
//Ancho de las columnas
$objPHPExcel->getActiveSheet(0)->getColumnDimension('A')->setAutoSize(true);
 
 
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A2', 'PRODUCTO')
            ->setCellValue('B2', 'MODELO')
            ->setCellValue('C2', 'TOTAL')
			->setCellValue('D2', ' ');
 
 
// Cambiar el nombre de hoja de cálculo
$objPHPExcel->getActiveSheet(0)->setTitle("invent");
 
 
 
///////////////////////
	$sqlCOUNT = "SELECT @n := @n +1 n, cliente
				FROM pedidos, (
				SELECT @n :=0
				)m
				GROUP BY cliente
				ORDER BY cliente DESC
				LIMIT 1";
 
	$resultCOUNT=mysqli_query($con,$sqlCOUNT);
	$rowCOUNT=mysqli_fetch_array($resultCOUNT);
 
///////////////////////
 
//First sheet
    $sheet = $objPHPExcel->getActiveSheet();
 
    //Start adding next sheets
  //  $i=1;
	//    while ($i <= $rowCOUNT[0]) {
for ($i=1; $i <$rowCOUNT[0] ; $i++) {
      // Add new sheet
      $objWorkSheet = $objPHPExcel->createSheet($i); //Setting index when creating
 
      //Write cells
      $objWorkSheet->setCellValue('A1', 'PRODUCTO')
                   ->setCellValue('B2', $rowCOUNT[1]);
 
 
 		//////////////
		$sqlcliente = "SELECT cliente
				FROM pedidos
				GROUP BY cliente
				ORDER BY cliente ASC";
 
		$resultcliente=mysqli_query($con,$sqlcliente);
////////////////////////
 
		$i2=1;
		while ($rowcliente=mysqli_fetch_array($resultcliente)){
 
		  // Rename sheet
		  $objWorkSheet->setTitle("$rowcliente[0]");
 
		  $i2++;
		}
    }
 
// Redirigir la salida al navegador web de un cliente ( Excel5 )
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="INVENTARIOS.xls');
header('Cache-Control: max-age=0');
// Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
header('Cache-Control: max-age=1');
 
// Si usted está sirviendo a IE a través de SSL , a continuación, puede ser necesaria la siguiente
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
 
 
?>
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

creacion de pestañas automaticas con PHPEXCEL

Publicado por Mauro (1036 intervenciones) el 13/04/2021 14:29:06
Hola Sara:

Para comenzar, estás utilizando una versión obsoleta de la librería... te recomiendo que, de ser posible, migres a PhpSpreadhseet.

Aquí te dejo una prueba de concepto que hice y con la que anduvo bien:

composer.json:

1
2
3
4
5
6
7
8
9
10
11
"name": "mauro/excel",
    "require": {
        "phpoffice/phpspreadsheet": "^1.17"
    },
    "authors": [
        {
            "name": "Mauro Chojrin",
            "email": "mauro.chojrin@leewayweb.com"
        }
    ]
}

index.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
require_once 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$sheet->setTitle('Test');
$newSheet = $spreadsheet->createSheet();
$newSheet->setTitle('Second sheet');
 
$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

Por si no conoces composer, te dejo este artículo
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: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

creacion de pestañas automaticas con PHPEXCEL

Publicado por SARA (67 intervenciones) el 19/04/2021 20:33:50
gracias amigo, ya logre realizarlo sin usar composer
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

creacion de pestañas automaticas con PHPEXCEL

Publicado por Mauro (1036 intervenciones) el 21/04/2021 14:34:07
Excelente! Igualmente te recomiendo incorporar composer a tu práctica.

Te ahorrarás muchos dolores de cabeza ;)
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

creacion de pestañas automaticas con PHPEXCEL

Publicado por hugo rafael (1 intervención) el 26/01/2024 20:28:14
como lo solucionaste amigo estoy teniendo el mismo inconveniente. de antemano gracias por tu 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