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;?>