sql >> Database >  >> RDS >> Mysql

Records exporteren in Excel-bestand

Het is niet nodig om externe bibliotheken te downloaden - alles wat je hiervoor nodig hebt is al ingebouwd in PHP.

Stappen:

  1. Voer een query uit in php om de rijen te krijgen die u wilt uitvoeren
    U kunt SELECT * FROM table WHERE id IN (1,2,...) gebruiken
  2. Gebruik mysql_fetch_array() of mysql_fetch_assoc() om de rijen één voor één te krijgen
  3. Gebruik fputcsv() om ze uit te voeren naar een bestand dat eindigt op csv - dit zal correct aan uw gegevens ontsnappen

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

Excel kan het bestand lezen.

Overschrijf de standaardinstellingen voor fputcsv om tabs voor scheidingstekens te gebruiken en Excel zal het nog gemakkelijker hebben om het bestand te lezen. Als u komma's gebruikt (standaard), moet u mogelijk komma's gebruiken als scheidingsteken bij het importeren van Excel.

Hier is een werkend voorbeeld, ervan uitgaande dat je al rijen hebt ingesteld:

$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. Big Data met PostgreSQL en Apache Spark

  2. Mysql-query om records te verwijderen na selectie..?

  3. Hoe Ruby on Rails configureren met Oracle?

  4. Sorteer NULL-waarden aan het einde van een tabel