Neste blog vamos aprender como exportar dados PHP para arquivo .xls passo a passo. Com a ajuda de um script PHP simples, você pode exportar dados para o Excel e baixá-los em um arquivo .xls.
PASSO 1: Crie um Array para armazenar os dados
Eu criei uma matriz ($customers_data) para armazenar os detalhes dos clientes. Você pode criar sua própria matriz conforme sua necessidade:
$customers_data = 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', ' clientes_telefone' => '9911224455' ), array( 'customers_id' => '3', 'customers_firstname' => 'Steve', 'customers_lastname' => 'Beaven', 'customers_email' => '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', 'customers_telephone' => '9912345388' ) );
PASSO 2: Crie uma função para filtrar os dados:
Esta função é usada para detectar aspas duplas e escapar de qualquer valor que as contenha. Sem isso, um número ímpar de aspas em uma string pode confundir o Excel.
// Filtrar Dados do Cliente function filterCustomerData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; }
ETAPA 3: Defina o nome do arquivo e o cabeçalho do conteúdo para download:
A variável $file_name�é usada para manter o nome do arquivo e também definir o cabeçalho do conteúdo para download.
// Nome do arquivo e cabeçalho do conteúdo para download $file_name = "customers_data.xls"; header("Conteúdo-Disposição: anexo; filename=\"$file_name\""); header("Tipo de conteúdo: aplicativo/vnd.ms-excel");
ETAPA 4: Defina o Loop em cada linha em $customers_data
//Para definir o nome da coluna na primeira linha. $column_names = false; // executa o loop em cada linha em $customers_data foreach($customers_data as $row) { if(!$column_names) { echo implode("\t", array_keys($row)) . "\n"; $column_names = true; } // A função array_walk() executa cada elemento do array em uma função definida pelo usuário. array_walk($row, 'filterCustomerData'); echo implode("\t", array_values($row)) . "\n"; } saída;
1. Defina uma variável $column_names que é usada para imprimir o nome da coluna na primeira linha do Excel. 2. Execute um loop em cada linha e use a função array_walk()� para executar cada linha em uma função definida pelo usuário.
ETAPA 5: Execute o arquivo de script em seu ambiente:
Se tudo correr bem, o nome do arquivo será chamado “customers_data.xls” baixado e salvo em seu computador. Você pode abrir este arquivo no Excel que se parece com o seguinte:
Clique aqui para baixar o código completo.