Header Ads

Exportando datos a excel en PHP


En este breve tutorial hablaremos sobre exportar datos a Excel en PHP. Muchos lugares en nuestro proyecto que estamos necesarios para proporcionar la exportación a la funcionalidad de Excel. Con el siguiente script simple puede implementar fácilmente los datos de exportación a la funcionalidad de Excel usando PHP. 

Aquí es la matriz de datos ($data) y a exportar estos datos a Excel usando PHP.


$data = array(
    array(
"First Name" => "Nitya""Last Name" => "Maity""Email" => "nityamaity87@gmail.com""Message" => "Test message by Nitya"),
    array(
"First Name" => "Codex""Last Name" => "World""Email" => "info@codexworld.com""Message" => "Test message by CodexWorld"),

    array(
"First Name" => "John""Last Name" => "Thomas""Email" => "john@gmail.com""Message" => "Test message by John"),
    array(
"First Name" => "Michael""Last Name" => "Vicktor""Email" => "michael@gmail.com""Message" => "Test message by Michael"),
    array(
"First Name" => "Sarah""Last Name" => "David""Email" => "sarah@gmail.com""Message" => "Test message by Sarah")
);
Hemos creado filterData() para una cadena de filtro proporcionado por la matriz de datos.

function filterData(&$str)
{
    
$str preg_replace("/\t/""\\t"$str);
    
$str preg_replace("/\r?\n/""\\n"$str);
    if(
strstr($str'"')) $str '"' str_replace('"''""'$str) . '"';
}
$variable fileName el nombre del archivo para descargar y también encabezado de contenido está definida para su descarga.

// file name for download$fileName "codexworld_export_data" date('Ymd') . ".xls";
// headers for downloadheader("Content-Disposition: attachment; filename=\"$fileName\"");header("Content-Type: application/vnd.ms-excel");
Ahora tenemos ejecutar bucle a través de cada par clave/valor en $data. Uso de $variable de indicador nos mostrará los nombres de columna en la primera fila. array walk() se utiliza para filtrar los datos, junto con filterData().

$flag false;
foreach(
$data as $row) {
    if(!
$flag){
        
// display column names as first row
        
echo implode("\t"array_keys($row)) . "\n";
        
$flag true;
    }
    
// filter data
    
array_walk($row'filterData');
    echo 
implode("\t"array_values($row)) . "\n";
}

exit;
Secuencia de comandos completa es dada a continuación.

<?php
    $data 
= array(
        array(
"First Name" => "Nitya""Last Name" => "Maity""Email" => "nityamaity87@gmail.com""Message" => "Test message by Nitya"),
        array(
"First Name" => "Codex""Last Name" => "World""Email" => "info@codexworld.com""Message" => "Test message by CodexWorld"),
        array(
"First Name" => "John""Last Name" => "Thomas""Email" => "john@gmail.com""Message" => "Test message by John"),
        array(
"First Name" => "Michael""Last Name" => "Vicktor""Email" => "michael@gmail.com""Message" => "Test message by Michael"),
        array(
"First Name" => "Sarah""Last Name" => "David""Email" => "sarah@gmail.com""Message" => "Test message by Sarah")
    );
    
    function 
filterData(&$str)
    {
        
$str preg_replace("/\t/""\\t"$str);
        
$str preg_replace("/\r?\n/""\\n"$str);
        if(
strstr($str'"')) $str '"' str_replace('"''""'$str) . '"';
    }
    
    
// file name for download
    
$fileName "codexworld_export_data" date('Ymd') . ".xls";
    
    
// headers for download
    
header("Content-Disposition: attachment; filename=\"$fileName\"");
    
header("Content-Type: application/vnd.ms-excel");
    
    
$flag false;
    foreach(
$data as $row) {
        if(!
$flag) {
            
// display column names as first row
            
echo implode("\t"array_keys($row)) . "\n";
            
$flag true;
        }
        
// filter data
        
array_walk($row'filterData');
        echo 
implode("\t"array_values($row)) . "\n";

    }
    
    exit;
?>

No hay comentarios