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

Conception Web Discussion :

Problème avec le header - PHPExcel


Sujet :

Conception Web

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Problème avec le header - PHPExcel
    Bonjour,

    J'ai créé un formulaire qui en fonction des critères saisis renvoi la liste des clients en fonction des critères.

    Les résultats sont ainsi renvoyés dans un tableau (html) mais j'aimerais aussi les exporter dans un fichier excel.

    Les résultats s'affichent correctement mais lors de l'exportation, j'obtiens cette erreur :

    Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\EasyPHP-5.3.2i\www\oscommerce-2.2rc1-FR-w3c-3\catalog\admin\search_client.php:1271) in C:\Program Files (x86)\EasyPHP-5.3.2i\www\oscommerce-2.2rc1-FR-w3c-3\catalog\admin\search_client.php on line 2305
    Voici les lignes concernées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('ContentType:application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="toto.xlsx"');
    header('Cache-Control: max-age=0');

    Ce code se trouve à la suite de l'affichage en HTML donc le header a déjà été généré..

    Je ne sais pas comment contourné ce problème, si quelqu'un pouvez m'aider?

    Merci d'avance
    Mika

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Points : 91
    Points
    91
    Par défaut
    Faire l'export à partir d'une autre page

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse,

    J'y ai pensé mais le problème c'est que si 10 000 clients sont ciblés par la recherche, il me faut envoyer 10 000 identifiants via une autre page non?

    La longueur de l'URL va me poser problème.

    Encore merci

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    quand tu génère ton tableau rien ne t'empêche de stocker l'information dans une variable de session et de t'en servir dans ton export.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Du coup, j'ai 2 pages:
    - la première correspond au formulaire.
    - la seconde me permet d'exporter mes données dans la tableau excel.

    Un bouton fait appel à cette deuxième page et le fichier excel se télécharge directement (pour l'instant je crée un fichier excel de base sans utilisé les données de la première page).

    Il faut que je crée une variable de session dans la première?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ma session se crée bien.

    Mon fichier d'export contient bien mais rien ne se lance alors que si je l’enlève le fichier s'exporte bien...

    Voici mon code, si vous voyez ce qui ne va pas :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <?php
    session_start();
    require_once('includes/application_top.php');
    /** Error reporting */
    
    error_reporting(E_ALL);
    
    date_default_timezone_set('Europe/London');
    
    $query_excel = 'select c.customers_dob as birthdate, c.customers_fax as fax, c.customers_gender as gender, c.customers_firstname as firstname, c.customers_lastname as lastname, ab.entry_company as company, c.customers_email_address as mail, ab.entry_street_address as address1, ab.entry_suburb as address2, ab.entry_postcode as cpostal, ab.entry_city as city, co.countries_name as country, co.countries_id countries_id, c.customers_telephone as telephone from ' . TABLE_CUSTOMERS . ' c INNER JOIN ' . TABLE_ADDRESS_BOOK . ' ab on c.customers_id = ab.customers_id INNER JOIN ' . TABLE_COUNTRIES . ' co on ab.entry_country_id = co.countries_id where c.customers_id IN ' . $_SESSION['prenom'] . ' group by c.customers_id order by lastname ,firstname ASC  ';
    $client_array_excel = tep_db_query($query_excel);
    $nb_result = tep_db_num_rows($client_array_excel);
    
    
    /** PHPExcel */
    require_once 'includes/classes/PHPExcel.php';
    
    
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    
    // Set properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
    							 ->setLastModifiedBy("Maarten Balliauw")
    							 ->setTitle("Office 2007 XLSX Test Document")
    							 ->setSubject("Office 2007 XLSX Test Document")
    							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    							 ->setKeywords("office 2007 openxml php")
    							 ->setCategory("Test result file");
    
    
    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', 'Email')
                ->setCellValue('B1', 'SalutationID')
                ->setCellValue('C1', 'FirstName')
                ->setCellValue('D1', 'LastName')
                ->setCellValue('E1', 'Company')
                ->setCellValue('F1', 'Address 1')
                ->setCellValue('G1', 'Address 2')
                ->setCellValue('H1', 'Address 3')
                ->setCellValue('I1', 'ZipCode')
                ->setCellValue('J1', 'City')
                ->setCellValue('K1', 'CountryID')
                ->setCellValue('L1', 'Phone')
                ->setCellValue('M1', 'Fax')
                ->setCellValue('N1', 'Mobil Phone')
                ->setCellValue('O1', 'MsgFormatId')
                ->setCellValue('P1', 'SaleMgt')
                ->setCellValue('Q1', 'Birthdate')
                ->setCellValue('r1', 'CustomDate1');
    
    // Miscellaneous glyphs, UTF-8
    $i=2;
    while( $client_excel = tep_db_fetch_array($client_array_excel))
    {
    	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i , $client_excel['mail']);
    	$objPHPExcel->getActiveSheet()->setCellValue('B' . $i , '1');
    	$objPHPExcel->getActiveSheet()->setCellValue('C' . $i , $client_excel['firstname']);
    	$objPHPExcel->getActiveSheet()->setCellValue('D' . $i , $client_excel['lastname']);
    	$i++;
    }
    // Rename sheet
    //$objPHPExcel->getActiveSheet()->setTitle('Simple');
    
    
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
    
    
    // Redirect output to a client’s web browser (Excel2007)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="test.xlsx"');
    header('Cache-Control: max-age=0');
    
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    exit;
    ?>

  7. #7
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    affiche la valeur de la requête dans ta page pour voir si son contenu est bon.

    après ça je ne connait pas assez cette bibliothèques pour fournir de l'aide.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

Discussions similaires

  1. PHPExcel - Problème avec les header (ou pas)
    Par sixelia dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 25/02/2014, 14h03
  2. [MySQL] Connexion à la BDD impossible + problèmes avec mes headers
    Par Terni dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/08/2007, 15h31
  3. [préprocesseur g++]probléme avec les headers
    Par Gotmere dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 22/03/2007, 17h32
  4. problèmes avec un header
    Par tioseb dans le forum Langage
    Réponses: 1
    Dernier message: 04/04/2006, 16h01
  5. Problème avec un HEADER
    Par Zebulonn dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2005, 13h56

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