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

Langage PHP Discussion :

Creer un fichier xls


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut Creer un fichier xls
    Bonjour,

    voici un moment que je parcourt le net mais je ne trouve pas ma solution
    voici mon fichier de test (j'ai pris quelque chose de basique trouve sur le net)
    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
    24
    25
    <?php
    $insert="test";
    	$file="data/toto.xls";
    	if(file_exists($file))  // On vérifie que le fichier existe.   
    	{
    		unlink($file);
    	}
     
    	$excel=new COM("Excel.application"); //Instanciation de l'objet COM
    	$excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
    	$excel->Workbooks->Add();//Ajout d'un classeur
    	$book=$excel->Workbooks(1);//$book contient le classeur actif
    	$sheet=$book->Worksheets(1);//$sheet contient la feuille active (comme son nom l'indique, feuille en anglais)
    	$sheet->Name="test";//Attribution d'un nom à la feuille
     
    	$cell=$sheet->Range('B1'); // On sélectionne la case B1
    	$cell->value=$insert; // On met la valeur de $variable dans la cellule B1, peu importe le type.
     
    	$book->saveas($file);//Sauvegarde du fichier
    	unset($sheet);//Libération de $sheet
    	unset($book);//Libération de $book
    	$excel->Workbooks->Close();//Fermeture du classeur
    	$excel->Quit();//On quitte Excel
    	unset($excel);//Libération de l'instance $excel
    ?>
    et j'obtiens ca :
    Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `Excel.application': Échec de l’exécution du serveur ' in C:\wamp\www\export_xls.php:9 Stack trace: #0 C:\wamp\www\export_xls.php(9): com->com('Excel.applicati...') #1 {main} thrown in C:\wamp\www\export_xls.php on line 9
    la ligne 9 etant $excel=new COM("Excel.application");

    j'ai active l'extention php_xls (on sait jamais) mais je n'ai pas trouve le COM

    ps : wamp 2 et windows seven 64b

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que excel est installé sur ton serveur ?

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    j'ai la suite office 2007 (le truc client que tout le monde a)

    => il faut une excel 'server' ?

  4. #4
    Membre chevronné
    Homme Profil pro
    CTO
    Inscrit en
    Avril 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : CTO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 360
    Points : 1 871
    Points
    1 871
    Par défaut
    Non, ça devrait pas planter, ça marche avec d'autres objets COM ?

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    je ne connais pas d'autres moyens, et presque tous les resultats google pointent vers du COM... mais si vous conaissez d'autres solutions, je suis op

    edit : dans la conversation suivante : forums/d846355/php/langage/com-erreur-saveas-passage-excel-2007-a/
    j'ai modifie le SaveAs par le SaveCopyAs
    et j'ai le message suivant
    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> Microsoft Office Excel ne peut accéder au fichier « data/toto.xls ». Plusieurs raisons possibles : • Le nom du fichier ou le chemin n'existe pas. • Ce fichier est actuellement utilisé par un autre programme. • Le classeur que vous essayez d'enregistrer porte le même nom qu'un classeur actuellement ouvert.' in C:\wamp\www\export_xls.php:19 Stack trace: #0 C:\wamp\www\export_xls.php(19): variant->SaveCopyAs('data/toto.xls') #1 {main} thrown in C:\wamp\www\export_xls.php on line 19
    je ne comprends pourquoi il n'en veut pas

  6. #6
    Membre chevronné
    Homme Profil pro
    CTO
    Inscrit en
    Avril 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : CTO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 360
    Points : 1 871
    Points
    1 871
    Par défaut
    Met le chemin complet de ton fichier :
    SaveCopyAs('C:\www\data\tonfichier.xls");

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    j'ai essaye toutes les syntaxes... rien a faire

  8. #8
    Membre chevronné
    Homme Profil pro
    CTO
    Inscrit en
    Avril 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : CTO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 360
    Points : 1 871
    Points
    1 871
    Par défaut
    Ma solution ne fonctionne que parceque j'ai ouvert un fichier xls qui me sert de modèle en fait.

    Toi tu le crée directement.

    Voilà un petit script mais tu auras un warning qui te diras que le type de fichier ne correspond pas à l'extension :

    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
    24
    25
    26
    27
    28
     
    <?php
    session_start(); 
    $insert="test";
    	$file=$_SERVER['DOCUMENT_ROOT']."/data/toto.xls";
    	echo $file;
    	if(file_exists($file))  // On vérifie que le fichier existe.   
    	{
    		unlink($file);
    	}
     
    	$excel=new COM("Excel.application"); //Instanciation de l'objet COM
    	$excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
    	$excel->Workbooks->Add();//Ajout d'un classeur
    	$book=$excel->Workbooks(1);//$book contient le classeur actif
    	$sheet=$book->Worksheets(1);//$sheet contient la feuille active (comme son nom l'indique, feuille en anglais)
    	$sheet->Name="test";//Attribution d'un nom à la feuille
     
    	$cell=$sheet->Range('B1'); // On sélectionne la case B1
    	$cell->value=$insert; // On met la valeur de $variable dans la cellule B1, peu importe le type.
     
    	$book->saveas($file,46);//Sauvegarde du fichier
    	unset($sheet);//Libération de $sheet
    	unset($book);//Libération de $book
    	$excel->Workbooks->Close();//Fermeture du classeur
    	$excel->Quit();//On quitte Excel
    	unset($excel);//Libération de l'instance $excel
    ?>

  9. #9
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    j'ai copie/colle ton code... fonctionne pas

    sinon, je pense que le probleme viens de plus haut que le saveas

    quand je fais :
    echo $file;
    if(file_exists($file)) // On vérifie que le fichier existe.
    {
    echo 'ok';
    unlink($file);
    }
    $file vaut : C:/wamp/www/data/toto.xls
    => j'ai cree un fichier toto.xls au cas ou mais fonctionne pas non plus

    et donc il ne m'affiche jamais "ok" (que le fichier existe deja ou non)
    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> Impossible de lire la propriété SaveAs de la classe Workbook.' in C:\wamp\www\export_xls.php:22 Stack trace: #0 C:\wamp\www\export_xls.php(22): variant->saveas('C:/wamp/www/dat...', 46) #1 {main} thrown in C:\wamp\www\export_xls.php on line 22
    ligne 22 => le saveas

  10. #10
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    si jamais quelqu'un tombe sur cette discution, j'ai trouve la solution dans la discution suivante : forums/d687578/php/bibliotheques-frameworks/bureautique/phpexcel-generation-fichiers-excel/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. creer un chemin relatif vers un fichier xls
    Par Z3c33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/05/2007, 18h26
  2. creer un fichier cpl
    Par Louis-Guillaume Morand dans le forum Windows
    Réponses: 5
    Dernier message: 04/03/2004, 19h10
  3. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  4. Réponses: 19
    Dernier message: 24/05/2002, 16h36
  5. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33

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