En este blog, aprenderemos cómo exportar datos de PHP a un archivo .xls paso a paso. Con la ayuda de un simple script PHP, puede exportar datos a Excel y descargarlos en un archivo .xls.
PASO 1: Cree una matriz para almacenar los datos
He creado una matriz ($clientes_datos) para almacenar los detalles de los clientes. Puede crear su propia matriz según sus requisitos:
$datos_clientes = array( array( 'customers_id' => '1', 'customers_firstname' => 'Chris', 'customers_lastname' => 'Cavagin', 'customers_email' => 'chriscavagin@gmail.com', 'customers_telephone' => '9911223388' ), array( 'customers_id' => '2', 'customers_firstname' => 'Richard', 'customers_lastname' => 'Simmons', 'customers_email' => 'rsimmons@media.com', ' teléfono_clientes' => '9911224455' ), array( 'id_clientes' => '3', 'nombre_clientes' => 'Steve', 'apellido_clientes' => 'Beaven', 'email_clientes' => 'ateavebeaven@gmail.com' , 'customers_telephone' => '8855223388' ), array( 'customers_id' => '4', 'customers_firstname' => 'Howard', 'customers_lastname' => 'Rawson', 'customers_email' => 'howardraw@gmail. com', 'customers_telephone' => '9911334488' ), array( 'customers_id' => '5', 'customers_firstname' => 'Rachel', 'customers_lastname' => 'Dyson', 'customers_email' => 'racheldyson@ gmail.com', 'clientes_telefono' => '9912345388' ) );
PASO 2: Cree una función para filtrar los datos:
Esta función se utiliza para detectar comillas dobles y escapar de cualquier valor que las contenga. Sin esto, un número impar de comillas en una cadena puede confundir a Excel.
// Filtrar datos de clientes function filterCustomerData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $cadena = preg_replace("/\r?\n/", "\\n", $cadena); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $cadena) . '"'; }
PASO 3: Defina el nombre del archivo y el encabezado del contenido para descargar:
La variable $file_name se usa para contener el nombre del archivo y también define el encabezado del contenido para la descarga.
// Nombre de archivo y encabezado de contenido para descargar $file_name = "customers_data.xls"; header("Contenido-Disposición: archivo adjunto; filename=\"$file_name\""); header("Tipo de contenido: application/vnd.ms-excel");
PASO 4: Defina Loop a través de cada fila en $customers_data
//Para definir el nombre de la columna en la primera fila. $nombres_columnas = falso; // ejecuta el ciclo a través de cada fila en $customers_data foreach($customers_data as $row) { if(!$column_names) { echo implode("\t", array_keys($row)) . "\norte"; $nombres_columnas = verdadero; } // La función array_walk() ejecuta cada elemento de la matriz en una función definida por el usuario. array_walk($fila, 'filterCustomerData'); echo implode("\t", array_values($row)) . "\norte"; } salida;
1. Defina una variable $column_names que se usa para imprimir el nombre de la columna en la primera fila de Excel. 2. Ejecute un ciclo a través de cada fila y use la función array_walk()� para ejecutar cada fila en una función definida por el usuario.
PASO 5: Ejecute el archivo de script en su entorno:
Si todo va bien, el nombre del archivo se llamará “customers_data.xls” descargado y guardado en su computadora. Puede abrir este archivo en Excel que se parece a lo siguiente:
Haga click aquí para descargar el código completo.