Mysql
 sql >> Database >  >> RDS >> Mysql

Esporta record in file excel

Non è necessario scaricare librerie esterne:tutto ciò di cui hai bisogno è già integrato in PHP.

Passi:

  1. Esegui query in php per ottenere le righe che desideri generare
    Puoi usare SELECT * FROM table WHERE id IN (1,2,...)
  2. Usa mysql_fetch_array() o mysql_fetch_assoc() per ottenere le righe una alla volta
  3. Usa fputcsv() per emetterli in un file che termina con csv - questo sfuggirà correttamente ai tuoi dati

http://www.php.net/manual/en /function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv .php

Excel sarà in grado di leggere il file.

Sostituisci le impostazioni predefinite per fputcsv utilizzare le schede per i delimitatori ed Excel sarà ancora più facile leggere il file. Se utilizzi le virgole (impostazione predefinita), potresti dover selezionare le virgole come delimitatore nell'importazione di Excel.

Ecco un esempio funzionante supponendo che tu abbia già impostato le righe:

$rows; // predefined
$filename = 'webdata_' . date('Ymd') . '.csv';

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/octet-stream"); 
// that indicates it is binary so the OS won't mess with the filename
// should work for all attachments, not just excel

$out = fopen("php://output", 'w');  // write directly to php output, not to a file
foreach($rows as $row)
{
  fputcsv($out, $row);
}
fclose($out);