PHP et Excel |
Utilisation du PHP avec un tableau EXCEL |
|
 |
Hello de Sector One (eh vi, l'auteur
de cette application et de cet article), dont je vais essayer de rester le plus
simple et le plus clair possible.
Je vais vous proposer une petite application en PHP avec l'utilisation de fichiers de données au format EXCEL, et en plus en licence GNU
(open-source), donc l'application complète se trouve sur mon site : http://www.odbcphp.fr.st |
Preparation
Vous devez posséder Microsoft Excel (sous licence) ou Star office (gratuit
en cliquant
ici)
Vous devez aussi avoir installé Easyphp, le kit d'installation du PHP disponible
en (cliquant ici)
Et bien sur, le programme XLS MAGIQUE... Actuellement la version 2.06
est disponible
Installation
après dézippage dans ../easyphp/www/
C'est expliqué dans le fichier "à lire" contenu dans l'archive mais bon...
Vous devez placer votre fichier dans le dossier liste, c'est à dire : Prenons
le logiciel Microsoft Excel
- A partir du menu déroulant : Choisir Fichier et Sauvegarder
sous...
- Sélectionner le type de fichier : CSV (séparateur : point-virgule)
(*.csv)
- Placer votre fichier dans le dossier liste ../easyphp/www/xlsMagique/liste
- Lancez la page http://localhost/xlsMagique
Principes généraux
Son auteur a une nouvelle fois voulu, réaliser une application presque 100
% automatique, et comme à son habitude, il l'a fait.
Tout d'abord, nous avons la posibilité de mettre plusieurs fichiers excel
dans le dossier liste qui seront gérés individuellement. Mais de pouvoir les
importer vers une table SQL sans modifier les lignes de programmations de
l'application. Et bien sur, de faire la meme chose mais en sens inverse, c'est
à dire l'exporter vers un tableau Excel.
Lecture d'un fichier Excel au format CSV :
<? function read_csv( $filename, $separateur) // transfert le fichier dans un tableau { if ( $FILE=fopen($filename,"r") ) // ouverture du fichier { while ($ARRAY[]=fgetcsv($FILE,1024,$separateur)); // lire ligne par ligne et coupe colonne par colonne fclose($FILE) ; // ferme le fichier array_pop($ARRAY); // efface la derniere ligne return $ARRAY ; // renvoie le tableau } } $ARRAY=read_csv("$dossier$nom_fichier",$separateur); // lit le fichier ?> |
Affiche le tableau en mémoire au format HTML
<? $heigh=sizeof($ARRAY); // compte le nombre de ligne $width=sizeof($ARRAY[0]); // nombre de colonne par ligne
echo "<TABLE>"; // ouvre la tableau HTML for($i=1;$i<$heigh;$i++) // les données du tableau { echo "<TR>\n"; // Nouvelle ligne for($j=0;$j<$width;$j++) // affiche colonne par colonne { echo "<TD>";
if( $ARRAY[$i][$j]=="" ) // si la case est vide echo " "; // n'affiche rien else // sinon { echo "<center>"; echo htmlspecialchars($ARRAY[$i][$j], ENT_QUOTES); // affiche les données echo "</center>"; } echo "</TD>\n"; // ferme la colonne } echo "</TR>\n"; // ferme la ligne }
echo "</TABLE>\n"; // tableau terminé // Fin tableau ?> |
L'IMPORT
Je ne vais pas vous décrire comment importer ce tableau ARRAY (vu ci-dessus),
mais le programme se base sur la première ligne pour attribuer les noms des
champs
Connexion à une base de donnée Access :
<? $user="root"; // login $password=""; // password $db="xlsmagique"; // nom de la base de donnée ?> |
Creation d'un fichier SQL :
<? $db_link = mysql_connect($serveur,$user,$password); // ouverture serveur if (!$db_link) Error_handler("Erreur connection serveur" , $db_link );
mysql_create_db( $db, $db_link ); // creation de la base de donnée
$query = "CREATE TABLE $fichier ("; // prepare creation table for($j=0;$j<$width;$j++) { $query .= "{$ARRAY[0][$j]}"; $query .= " text NOT NULL"; if ($j != $width-1) $query .= ", "; } $query .= ");";
mysql_select_db( $db, $db_link ); // selectionne la Table mysql_query( $query, $db_link ); // execute creation Table
?> |
Vous obtiendrez le résultat suivant (pour les connaisseurs des fonctions)
:
CREATE TABLE exemple (lettre text NOT NULL, num text NOT NULL,
col1 text NOT NULL, col2 text NOT NULL, col3 text NOT NULL, col4 text NOT
NULL)
Après au lieu d'envoyer votre tableau au format HTML, vous l'envoyer dans
votre base de donnée que vous venez de créer.
L'EXPORT
Si on peut importer un fichier Excel dans une base de donnée SQL, il est tout
à fait envisable de faire la même chose mais dans le sens contraire.
C'est le cas de l'application XLS MAGIQUE, qui vous permet de le faire...
Vous devrez par contre saisir le nom de votre base de donnée SQL, sinon le
programme utilisera ses paramètres par défaut. L'auteur vous offre de nombreuses
possibilités :
- Sélectionnez une ou plusieurs tables de votre base de donnée
- La possibilité de paramétrer la ou les tables sélectionnées
ci-dessus spécifiant certains critères très précis
et/ou de tri croissant ou tri décroissant.
Si vous avez choisi plusieurs tables, vous obtiendrez plusieurs fichiers,
car le fichier CSV ne gère que feuille par feuille.
Lecture d'un fichier CSV
Dernier point à connaître, et on aura terminé pour ce cours.
Vous avez exporté votre base de donnée et les fichiers sont sur votre disque
dur.
Pour les lire, vous devez lancer votre tableur (Excel ou Star office) :
- A partir du menu déroulant: choisir Fichier et Ouvrir...
- Sélectionner le type de fichier : Fichier texte (*.csv)
et vous verrez le resultat final.
A vous de jouer !
En Espérant, vous avoir montrer la facilité de son utilisation, je pense que
vous avez tout dans vos mains pour réaliser de jolies tableaux au format Excel.
Hello le
12/10/2002 (246 249 hits) |
|
|