Není třeba stahovat externí knihovny – vše, co k tomu potřebujete, je již zabudováno v PHP.
Kroky:
- Proveďte dotaz v php, abyste získali řádky, které chcete vytisknout
Můžete použítSELECT * FROM table WHERE id IN (1,2,...)
- Použijte
mysql_fetch_array()
nebomysql_fetch_assoc()
získat řádky jeden po druhém - Použijte
fputcsv()
pro jejich výstup do souboru končícího na csv – to správně unikne vašim datům
http://www.php.net/manual/en /function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv .php
Excel bude schopen číst soubor.
Přepíše výchozí hodnoty pro fputcsv
používat tabulátory pro oddělovače a Excel bude mít čtení souboru ještě jednodušší. Pokud používáte čárky (výchozí nastavení), možná budete muset vybrat čárky jako oddělovač při importu do Excelu.
Zde je funkční příklad za předpokladu, že již máte nastavené řádky:
$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);