Exportar archivos Excel con PHP desde registros seleccionados
Exportar archivos Excel con PHP desde registros seleccionados. La personalización es un aspecto importante en cualquier sistema web y justamente aquí estamos tratando de exportar un fichero Excel desde PHP con MySQL. Sin embargo, en este artículo nos centraremos en la exportación de registros elegidos por el usuario mediante el uso de input tipo RADIO.
Exportar archivos Excel con PHP desde registros seleccionados
Hoy en día el uso de los sistemas web esta creciendo muy rápido, muchas empresas lo solicitan para implementarlo en sus empresas, veamos algunos criterios de su uso.
¿Porque usar una plataforma web?
- Flexibilidad de instalación.
- Podemos visualizarlo desde cualquier dispositivo que tenga acceso a internet
- Su reducido costo de implementación.
- Facilidad de edición del sistema web.
- Recursos y componentes que usaremos para este artículo
Los recursos son:
- Librería Bootstrap
- Ficheros PHP
- Base de datos MySQLi
Contenido del paquete.
- php_phpexcel.sql
- db.php
- FormContacto.php
- GenerarExcel.php
- GenerarExcelEspecifico.php
- ListaContactos.php
- MensajeError.php
La Base de datos
CREATE TABLE `contactos` ( `id` int(11) NOT NULL, `nombres` varchar(250) NOT NULL, `email` varchar(250) DEFAULT NULL, `asunto` varchar(220) DEFAULT NULL, `mensajes` text, `fcreacion` datetime DEFAULT NULL, `fmodificacion` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
Fichero ListaContacto.php
<form method="POST" action="GenerarExcelEspecifico.php"> <div class="page-header"> <h1>Lista de Contactos</h1> </div> <div class="dropdown"> <span class="glyphicon glyphicon-cog btn-lg text-success" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a href="FormContacto.php">Registrar</a></li> <li><a href="GenerarExcel.php">Generar Excel</a></li> <li><a href="#">Generar PDF</a></li> </ul> </div> <div class="row espaco"> <div class="pull-right"> <a href="FormContacto.php"> <button type='button' class='btn btn-sm btn-success'>Registrar</button> </a> <a href="GenerarExcel.php"> <button type='button' class='btn btn-sm btn-success'>Generar Excel</button> </a> <input type="submit" value="Excel Especifico" class='btn btn-sm btn-success'> </div> </div> <div class="row"> <div class="col-md-12"> <table class="table"> <thead> <tr> <th class="text-center">PDF</th> <th class="text-center">Id</th> <th class="text-center">Nombres</th> <th class="text-center">E-mail</th> <th class="text-center">Asunto</th> <th class="text-center">Ingresado</th> <th class="text-center">Acciones</th> </tr> </thead> <tbody> <?php while($row_contactos = mysqli_fetch_assoc($resultado_contactos)){?> <tr> <?php $id = $row_contactos["id"]; ?> <td class="text-center"><?php echo "<input type='radio' name='msg_contacto[$id]' value='1'" ?></td> <td class="text-center"><?php echo $row_contactos["id"]; ?></td> <td class="text-center"><?php echo $row_contactos["nombres"]; ?></td> <td class="text-center"><?php echo $row_contactos["email"]; ?></td> <td class="text-center"><?php echo $row_contactos["asunto"]; ?></td> <td class="text-center"><?php echo date('d/m/Y H:i:s',strtotime($row_contactos["fcreacion"])); ?></td> <td class="text-center"><a href="#" class="btn btn-default"> <span class="glyphicon glyphicon-eye-open text-primary" aria-hidden="true"></span> </a> <a href="#" class="btn btn-default"> <span class="glyphicon glyphicon-pencil text-warning" aria-hidden="true"></span> </a> <a href="#" class="btn btn-default"> <span class="glyphicon glyphicon-remove text-danger" aria-hidden="true"></span> </a></td> </tr> <?php } ?> </tbody> </table> </div> </div> </form>
GenerarExcelEspecifico.php
Para lograr exportar solo elementos seleccionados en una lista tendremos que hacer consultas dentro de en ciclo en este caso usaremos el ciclo FOREACH para poder obtener registros personalizados en nuestro Excel.
foreach($_POST['msg_contacto'] as $id => $msg_contato){ //Selecionar todos los items de la tabla $result_msg_contatos = "SELECT * FROM contactos WHERE id = $id LIMIT 1"; $resultado_msg_contatos = mysqli_query($conectar , $result_msg_contatos); while($row_msg_contatos = mysqli_fetch_assoc($resultado_msg_contatos)){ $html .= ' <tr>'; $html .= '<td>'.$row_msg_contatos["id"].'</td> '; $html .= '<td>'.$row_msg_contatos["nombres"].'</td>'; $html .= '<td>'.$row_msg_contatos["email"].'</td>'; $html .= '<td>'.$row_msg_contatos["asunto"].'</td>'; $data = date('d/m/Y H:i:s',strtotime($row_msg_contatos["fcreacion"])); $html .= '<td>'.$data.'</td>'; $html .= '</tr>'; ; } }
CONCLUSIÓN
Sabemos que puede exportar contenidos de una base de datos a Excel usando PHP como lenguaje de programación. Sin embargo, trabaja en base de una consulta que bien pueden ser enviados desde un formulario.
En algunos casos esas consultas no satisfacen la necesitad de los usuarios de generar un archivo Excel con registros personalizados.
Espero que este ejemplo les sirva para sus proyectos web.
Buen dia como puedo crear el archivo administrativo.php que pide para avanzar entre paginacion