2009-08-23 7 views

Répondre

2

Si un fichier CSV fera (peut être ouvert/édité/enregistré dans Excel), vous pouvez utiliser quelque chose comme ça:

foreach ($thing as $val) { 
    if($val['checked']) { 
     $csv_output .= "\"" . $val['name'] . "\",\"" . $val['tel'] . "\",\"" . $val['email'] . "\"\n"; 
    } 
} 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: filename=" . $filename . "-" . date("Y-m-d") . ".csv"); 
print $csv_output;die; 

Où csv_output de $ est une chaîne formatée au format CSV.

Si vous souhaitez enregistrer le fichier que vous pouvez utiliser la fonction PHP fputcsv

0

Une seule partie de la solution bien sûr, mais le module PHP Spreadsheet Excel Writer vous permettra de produire une feuille de calcul Excel.

0

La sortie d'une page HTML normale a fonctionné le mieux pour moi. Excel interprète le formatage, y compris CSS. Et le code reste lisible.

<?php 

$countries = Array(
    Array('name' => 'France', 'capital' => 'Paris'), 
    Array('name' => 'Germany', 'capital' => 'Berlin'), 
    Array('name' => 'Switzerland', 'capital' => 'Berne'), 
); 

// make the browser open it in Excel 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: filename=countries.xls"); 

?> 
<html> 
    <head> 
     <style type="text/css"> 
td { 
    border: 1px solid blue 
} 
     </style> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <th>Country</th> 
       <th>Capital</th> 
      </tr> 
      <? foreach ($countries as $country): ?> 
       <tr> 
        <td><?=$country['name'] ?></td> 
        <td><?=$country['capital'] ?></td> 
       </tr> 
      <? endforeach; ?> 
     </table> 
    </body> 
</html> 
0

Il existe PHPExcel, une bonne bibliothèque pour écrire des fichiers Excel en PHP.

Questions connexes