2010-09-30 5 views
3

J'ai une table dans une base de données mysql. Qu'est-ce que je veux faire, est dans une page php, exécutez une instruction select et la sortie du résultat dans un fichier Excel.Enregistrer la requête mysql pour exceler le fichier de la page web php

J'ai vu pas mal de tutoriels et je les ai essayés, mais ils affichent le contenu de la page Web dans le fichier Excel. Je veux juste les données et les en-têtes de la table mysql.

Est-il possible de le faire?

Répondre

3

Vous pouvez utiliser l'une des bibliothèques PHP disponibles pour cela. One, two.

Une chose qui est assez rapide pour se développer, mais pas aussi propre que l'utilisation d'une bibliothèque pour qui:

  1. Effectuez votre requête MySQL
  2. Créer un tableau HTML avec les résultats
  3. Set type de contenu de la réponse à: application/vnd.ms-excel

dans la plupart des navigateurs, en utilisant cette page ouvrira la table HTML comme une feuille de calcul dans Excel. Vous pouvez utiliser d'autres en-têtes HTTP pour suggérer un nom de fichier pour ce fichier.

+0

Merci Pablo, je vais essayer, je pense. – 109221793

1

J'ai utilisé PHPExcel depuis un certain temps maintenant et je dois dire, c'est assez facile à utiliser si vous pouvez lire le doc.

fait ce que vous voulez dans un après-midi (lire la doc, essayer des choses et la finalisation)

0

Certainement vous devez utiliser un composant pour générer un fichier Excel. J'utilise cette lib:

  • Spreadsheet :: WriteExcel: Une bibliothèque pour générer Excel Spreadsheets
  • Copyright (C) 2002 Xavier Noguer [email protected]

Voici un petit extrait:

header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=$filename"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); 
header("Pragma: public"); 

$formato1 =& $workbook->add_format(); 
$formato1->set_border(1); 
$formato1->set_bg_color('white'); 
$formato1->set_fg_color('grey'); 
$formato1->set_pattern(); 
$formato1->set_size(10); 
$formato1->set_color('white'); 
$formato1->set_align('center'); 
$formato1->set_bold(); 

$formato2 =& $workbook->add_format(); 
$formato2->set_size(10); 
$formato2->set_border(1); 

$worksheet1 =& $workbook->add_worksheet('Relatório de Inscrições'); 
$linha = 1; 

//Query dos dados das inscrições recebidas 

$sql = "select 
      A.Name, A.Code 
     from 
      Customers A 
     order by 
      A.Name"; 

$resultado = $conn ->_execute($sql); 

$worksheet1->write_string(0, 0, 'Name', $formato1); 
$worksheet1->write_string(0, 1, 'Code', $formato1); 

for($a = 0; $a < count($resultado); $a++) 
{ 
    $row = $resultado[$a]; 

    $worksheet1->write_string($linha, 0, utf8_decode($row->Name), $formato2); 
    $worksheet1->write_number($linha, 1, $row->Code,     $formato2); 

    $linha++; 
} 

$workbook->close(); 
Questions connexes