IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Excel] MySQL vers Excel: format cellules sans PHPExcel


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Par défaut [Excel] MySQL vers Excel: format cellules sans PHPExcel
    Bonjour,

    Je dois exporter un tableau excel à partir d'une requète sql créée en PHP.

    J'ai déjà réussi à le faire, la requête marche bien et l'export aussi, le seul soucis c'est que le fichier Excel n'est pas du tout formaté.

    Je ne veux pas un truc compliqué, mais simplement ajuster la taille des cellules au texte.

    Voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    include 'sqlConnect.php';
     
    //Requete SQL
    $query = $_POST['sql'];
     
    $result = mysql_query($query) or die(mysql_error());
     
    // Entêtes des colones dans le fichier Excel
    $excel .="Propriétaire (manuel) \t Openspace (manuel) \t Nom de l'ordinateur \t Groupe de travail \t Système d'exploitation \t Constructeur \t Modèle \t Processeur \t RAM \t Nombre de disques \t Capacité totale des disques \n";
     
    //Les resultats de la requette
    while($row = mysql_fetch_array($result)) {
    		$excel .= "$row[NAMEconst] \t $row[OPENSPACE] \t $row[NAME] \t $row[WORKGROUP] \t $row[OSNAME] \t $row[SMANUFACTURER] \t $row[SMODEL] \t $row[PROCESSORT] \t $row[MEMORY] \t $row[nbHDD] \t $row[totalSize]  \n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Export.xls");
    print $excel;
    exit;
     
    include 'sqlClose.php';
    ?>
    (la requête est générée sur une autre page)


    J'ai vu ici qu'il est possible de mettre de la couleur et du formatage, du coup je penses que c'est aussi possible de faire ce que je veux.

    Mais ce code est super compliqué par rapport au mien (qui marche très bien), et je voudrais garder quelque chose de simple.

    Est-ce possible sans PHPExcel ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce que tu fais n'est pas un fichier Excel, c'est un fichier CSV.
    Par définition un fichier CSV ne contient rien d'autre que du texte.

    Pour faire un fichier Excel, il vaut mieux utiliser PHPExcel que l'objet COM que tu as indiqué.
    http://g-ernaelsten.developpez.com/tutoriels/excel2007/

    Au passage, tu es sûr de vouloir un script qui execute n'importe quelle requête qu'on peut lui donner ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Par défaut
    OK, ça explique quelques trucs xD

    Au passage, tu es sûr de vouloir un script qui execute n'importe quelle requête qu'on peut lui donner ?
    -> C'est à dire ?

    Bon je vais me lancer dans PHPExcel alors

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = $_POST['sql'];
    $result = mysql_query($query);
    Ca veut dire qu'on peut envoyer la requête de son choix et quel sera executée aveuglement, sous la seule restriction des droits de ton utilisateur Mysql.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Sinon, si PHPExcel te semble trop lourd, il y a des solutions plus légères.

    Il existe une déclinaison d'un prjet Perl pour PHP, j'ai fais un petit tuto il y a très longtemps

    Tu trouveras les sources ici https://github.com/pear/Spreadsheet_Excel_Writer

    Pour ce que tu veux faire, ça peut-être sympa.

Discussions similaires

  1. Excel: format cellule
    Par gorka dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/06/2011, 21h33
  2. Exportation d'une bd mysql vers un format csv
    Par derric8016 dans le forum Outils
    Réponses: 5
    Dernier message: 13/01/2006, 21h58
  3. [excel] format de cellule
    Par alpachico dans le forum Excel
    Réponses: 5
    Dernier message: 28/07/2005, 10h09
  4. [Delphi 2005] Format cellules Excel
    Par Vulcanos dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/05/2005, 22h21
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo