sql >> Databasteknik >  >> RDS >> Mysql

Exportera poster i excel-fil

Det finns inget behov av att ladda ner externa bibliotek - allt du behöver för detta är redan inbyggt i PHP.

Steg:

  1. Fråga i php för att få de rader du vill mata ut
    Du kan använda SELECT * FROM table WHERE id IN (1,2,...)
  2. Använd mysql_fetch_array() eller mysql_fetch_assoc() för att få raderna en i taget
  3. Använd fputcsv() för att mata ut dem till en fil som slutar på csv - detta kommer korrekt att undvika dina data

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

Excel kommer att kunna läsa filen.

Åsidosätt standardinställningarna för fputcsv att använda tabbar för avgränsare och Excel kommer att ha ännu lättare att läsa filen. Om du använder kommatecken (standard) kan du behöva välja kommatecken som avgränsare vid Excel-import.

Här är ett fungerande exempel förutsatt att du redan har rader inställda:

$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);


  1. Vad är skillnaden mellan att använda INDEX vs KEY i MySQL?

  2. Hur man ändrar webbporten i EBS 12.2

  3. Oracle XML :Hoppa över Finns inte nod

  4. Gör ett objekt DÖ i SQL Server