Exportar MySQL para XLS
Script para exportar os dados de uma tabela em MySQL para o formato XLS (Excel/BrOffice.org Calc).
Descrição
Script para exportar os dados de uma tabela em MySQL para o formato XLS (Excel/BrOffice.org Calc).
<?php
/*
Adaptado de : http://www.phpfreaks.com/tutorials/114/0.php
*/
//Configuração da BD
$mysql_host="localhost";
$mysql_login="root";
$mysql_pass="password";
$mysql_db="nomedabasededados";
$connect = mysql_connect($mysql_host, $mysql_login, $mysql_pass) or die ('Erro Connect');
mysql_select_db($mysql_db) or die ('Erro Select DB');
//Nome da tabela a ser exportada
$table="nomedatabela";
$select = "SELECT * FROM ".$table;
$export = mysql_query($select);
$fields = mysql_num_fields($export);
for ($i = 0; $i < $fields; $i++) {
$header .= mysql_field_name($export, $i) . "\t";
}
while($row = mysql_fetch_row($export)) {
$line = '';
foreach($row as $value) {
if ((!isset($value)) OR ($value == "")) {
$value = "\t";
} else {
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
if ($data == "") {
$data = "\n(0) Records Found!\n";
}
else{
$hoje=date("Y_m_j");
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=".$table."_".$hoje.".xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
}
?>
Funciona bem para o Microsoft Excel. Já o BrOpenOffice Calc 2.0 ele não abriu o arquivo gerado, não sei porquê.