Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 16h38   #1
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Par défaut Ouvrir un fichier excel

Bonjour

Le but de mon programme, c'est d'ouvrir un fichier excel existant (ça c'est bon), le modifier (ça c'est bon aussi) et l'ouvrir (là ça va pas).
Pour l'instant comme j'arrive pas à l'ouvrir, je l'enregistre.
Dans mon indexSuccess.php j'ai un lien

Code :
<?php echo link_to(image_tag('/images/editer.png'), 'devis/excel?id=' . $form->getObject()->getId() )
puis dans mon action.class.php:

Code :
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
29
30
31
32
33
34
 
public function executeExcel(sfWebRequest $request) {
$objPHPExcel = new sfPhpExcel();
        $sheet = $objPHPExcel->getActiveSheet(); //Raccourci
        //Ouvrir un fichier existant
        $path = 'C:\dev\projet\devis/';  // Répertoire où l'on veut récupérer le fichier existant
        set_include_path(get_include_path() . PATH_SEPARATOR . $path);
 
        function __autoload($classe) {
            $fichier = str_replace
                            (
                            '_', # Caractère à remplacer.
                            DIRECTORY_SEPARATOR, # Caractère de remplacement.
                            $classe              # Cible du remplacement.
                    ) . '.php';
            require_once($fichier); # Chargement de la classe.
        }
 
        $objet = new PHPExcel_Reader_Excel2007();
        $excel = $objet->load('C:\dev\projet\devis\TheDevis.xlsx'); //Chemin où est le fichier
        //Ecriture dans le fichier existant ouvert
        $sheet = $excel->getSheet(0); // Dans la première feuille xls
 
        // Je remplis mon fichier 
 
 
 
        //Sauvegarde du fichier
        $writer = new PHPExcel_Writer_Excel2007($excel);
        $writer->save('C:\Devis/' . $nom);    // Je l'enregistre comme j'arrive pas à l'ouvrir ^^
 
        $this->redirect('devis/edit?id='.$devis.'');
 
}
J'ai essayé :

Code :
1
2
3
4
5
 
$writer = new PHPExcel_Writer_Excel2007($objet);
 header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
 header('Content-Disposition:inline;filename=Fichier.xlsx ');
 $writer->save('php://output');
Mais bon ça n'a pas marché.
Quelqu'un pourrait m'aider svp?
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h45   #2
Membre habitué
 
Inscription : juin 2006
Messages : 488
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 488
Points : 116
Points : 116
tu as un message d'erreur ?
erictomcat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 08h05   #3
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Non il se passe rien c'est tout :/
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 09h54   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
L'enregistrement est correcte ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h06   #5
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Oui tout est bien rempli.
Si le fichier existe déjà, il le remplace sans problème.

Au début j'avais abandonné l'idée tellement j'avais passé de temps à chercher comment, en me disant: 'ils iront dans leur répertoire le chercher'
Mais quand j'ai mis le site en réseau j'ai vu que les devis sont enregistrés sur le serveur pas chez le client. Donc je me retrouve obligé à chercher encore comment faire
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h17   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
As-tu essayer d'autres navigateur ?
As-tu essayer de faire un lien vers le fichier puis un unlink?

As-tu mis en place une gestion de log pour ce qu'il se passe ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h41   #7
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Je viens de tester avec IE ça ne marche pas non plus.
Mon php://output est bon au moins? ^^'

Je vais essayer de faire un lien, par contre la gestion de log je vois pas ce que c'est
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h12   #8
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
J'arrive pas à faire un lien vers un fichier serveur, je suis vraiment une boulette
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h16   #9
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Là je laise les pros Symfony te prendre en charge
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 12h40   #10
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
On est plus sur un problème php qu'un problème symfony.

Tu as un excellent tutoriel sur PHPExcel publié sur dvp. Regarde plus particulièrement le code de "Petit exemple" qui devrait répondre à ta question.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 08h18   #11
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Alors, j'ai fait le tout petit code d'exemple pour tester l'ouverture du fichier :

Code :
1
2
3
4
5
6
7
8
9
10
 
$workbook = new sfPhpExcel();
        $sheet = $workbook->getActiveSheet(); //Raccourci
		$sheet->setCellValue('A1','MaitrePylos');
 
		$writer = new PHPExcel_Writer_Excel2007($workbook);
 
		 header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
		 header('Content-Disposition:inline;filename=Fichier.xlsx ');
		 $writer->save('php://output');
ça marche, cependant quand je fais 'ouvrir' j'ai ce message dans Excel :

'Impossible d'ouvrir le fichier 'Fichier.xlsx' car son format ou son extension n'est pas valide. Vérifiez que le fichier n'est pas endommagé et que son extension correspond bien au format du fichier'
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 09h17   #12
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Un problème de version d'excel ? Je ne suis pas sur que ceci puisse être ouvert sur toutes les versions.

Si non, il faudrait plus probablement regarder sur un forum qui traiterait de cette librairie, on n'est plus réellement dans des problèmes liés à symfony.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 09h32   #13
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Essaye avec ceci pour voir.

Code :
1
2
 
$writer = new PHPExcel_Writer_Excel5($workbook);
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 09h45   #14
Invité de passage
 
Inscription : avril 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 12
Points : 2
Points : 2
Code :
1
2
3
 
 
$writer = new PHPExcel_Writer_Excel5($workbook);
ça n'a pas marché. Comme ce n 'est plus le même sujet, je met celui là en résolu.

Merci à tous
Lindys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h59.


 
 
 
 
Partenaires

Hébergement Web