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 :

[PHPExcel] Calcules multi feuille


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut [PHPExcel] Calcules multi feuille
    Bonjour,
    J'utilise la TRÈS bonne class de Maitre Pylos .; Mais là j'ai comme un soucis

    Je génère un document multi feuille et j'aurais besoin que sur la dernière ce soit un récapitulatif des précédentes.
    Donc j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ${'sheet'.$nb_onglet}->setCellValue('A1',"=SOMME('onglet_1'!A1+'onglet_2'!A1+'onglet_3'!A1+'onglet_4'!A1+'onglet_5'!A1)");
    Mais j'ai droit à un belle erreur :
    Fatal error: Call to a member function cellExists() on a non-object in ...\PHPExcel\Calculation.php on line 3241

    Soit, j'ai raté un truc .. Soit les calcules multi feuille ne fonctionnent pas comme ça ...

    Si vous avez une piste pour moi ..
    Merci d'avance
    Quand une réponse vous aide
    Et quand ça marche

  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
    comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=SUM(onglet_1!A1;onglet_2!A1;onglet_3!A1;onglet_4!A1;onglet_5!A1)"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    ... J'dois vraiment rater un truc ..

    <br />
    <b>Fatal error</b>: Uncaught exception 'PHPExcel_Exception' with message 'UO!A1 -&gt; Formula Error: An unexpected error occured' in C:\Program Files\...\PHPExcel\Cell.php:307
    Stack trace:
    #0 ...\PHPExcel\Writer\Excel5\Worksheet.php(460): PHPExcel_Cell-&gt;getCalculatedValue()
    #1 ...\PHPExcel\Writer\Excel5.php(194): PHPExcel_Writer_Excel5_Worksheet-&gt;close()
    #2 ...\utils\class.excel.php(81): PHPExcel_Writer_Excel5-&gt;save('php://output')
    #3 ...\test-25-02-15-export.php(68): MaitrePylosExcel-&gt;affiche('Excel5', 'TEST_Export_du_...')
    #4 {main}
    thrown in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\BUDGEST\utils\PHPExcel\Cell.php</b> on line <b>307</b><br />
    Quand une réponse vous aide
    Et quand ça marche

  4. #4
    Modérateur

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

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 593
    Points
    12 593
    Par défaut
    Bonjour, il te dit que ta formules est incorecte, l'as tu testé en dehors de PHPExcel, sur un fichier en directe ?

  5. #5
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Bonjour,

    Je viens de tester ma formule directement dans Excel
    que ce soit avec les ";" ou les "+" elle fonctionne

    mais impossible de la faire fonctionner dans PHPExcel ..
    Mais les messages d'erreur sont différents

    Je colle ci_dessous le code de ma page test .. moins de 70 lignes

    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
     
    <?php
    	require_once("../utils/__config.php"); 
    	require_once('../utils/class.connect.php');
     
    function string2url($chaine) { 
     $chaine = trim($chaine); 
     $chaine = strtr($chaine, 
    "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", 
    "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"); 
     $chaine = strtr($chaine,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"); 
     $chaine = preg_replace('#([^.a-z0-9]+)#i', '-', $chaine); 
            $chaine = preg_replace('#-{2,}#','-',$chaine); 
            $chaine = preg_replace('#-$#','',$chaine); 
            $chaine = preg_replace('#^-#','',$chaine); 
     return $chaine; 
    }
    include '../utils/class.excel.php';
    function Somme_Total_UO($liste_entite,$position){
    $contenu = "=SOMME(";
    foreach($liste_entite as $entite)
    {
        $contenu .= "'".$entite . "'!".$position.";";
    }
    $contenu = substr($contenu, 0, -1);  // supprime le dernier "+"
     
    $contenu .= ")";
     
    return $contenu ;
    }
     
    $nb_onglet =0;
    	$DB4 = DB::getInstance();
        foreach ($DB4->query("SELECT `id`,`libelle` FROM `entites` WHERE `depend_de` =33" ) as $row4)
        {
    	$bop = $row4['id'];
    	$libelle = string2url($row4['libelle']);
    	$liste_entite[] = $libelle;
     
    if ($nb_onglet == 0)
     {
      $workbook = new MaitrePylosExcel();
      ${'sheet'.$nb_onglet} = $workbook->getActiveSheet();				
      ${'sheet'.$nb_onglet}->setTitle($libelle);
      ${'sheet'.$nb_onglet}->setCellValue('A1',10);
     }
     else
     {
      ${'sheet'.$nb_onglet} = $workbook->createSheet($nb_onglet);
      $workbook->setActiveSheetIndex($nb_onglet);	
      ${'sheet'.$nb_onglet} = $workbook->getActiveSheet($nb_onglet);
      ${'sheet'.$nb_onglet} ->setTitle($libelle);
      ${'sheet'.$nb_onglet}->setCellValue('A1',3);
     }
     
     $nb_onglet ++;
     }
      ${'sheet'.$nb_onglet} = $workbook->createSheet($nb_onglet);
      $workbook->setActiveSheetIndex($nb_onglet);	
      ${'sheet'.$nb_onglet} = $workbook->getActiveSheet($nb_onglet);
      ${'sheet'.$nb_onglet} ->setTitle("UO");
     
     
    	${'sheet'.$nb_onglet}->setCellValue('A1',Somme_Total_UO($liste_entite,"A1"));
     
     $date = date('d-m-Y');		
    $workbook->affiche('Excel5','TEST_Export_du_'.$date);
    ?>
    J'ai donc codé une petite fonction pour générer les formules en fonction des onglets ..
    Ces formules sont testés sous excel ..

    Si vous avez une idée ... Merci

    Oups .. en allégeant mon code pour le coller ici j'ai supprimer le "return $contenu ;" de la fonction ..
    Quand une réponse vous aide
    Et quand ça marche

  6. #6
    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
    Il faut écrire les formules en VO donc "=SUM(Feuil!A1, Feuil!A2)"
    Par contre tu utilises bien la version 1.8 ? Personnellement je n'ai pas d'erreurs sur la classe même si je mets des formules un peu fantaisistes.

    Au passage le premier des debugages c'est de faire des tests directs en dehors de tes fonctions, requêtes etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il faut écrire les formules en VO donc "=SUM(Feuil!A1, Feuil!A2)"
    Par contre tu utilises bien la version 1.8 ? Personnellement je n'ai pas d'erreurs sur la classe même si je mets des formules un peu fantaisistes.

    Au passage le premier des debugages c'est de faire des tests directs en dehors de tes fonctions, requêtes etc.
    Premièrement MERCI
    Le pire c'est que je le savait .. Mais je m’obstinai sans voir mon erreur
    quand je mettais ma formule entre guillemets et que j'enlevai les guillemets dans excel .. ça fonctionnait ..
    je comprenait pas ...


    Pour la suite .. tu as aussi raison .. mais des fois ..

    Merci encore et je marque comme résolu
    Quand une réponse vous aide
    Et quand ça marche

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

Discussions similaires

  1. [PHPExcel] Création fichier Multi Feuille
    Par Friksstyle dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 23/07/2012, 17h47
  2. Réponses: 55
    Dernier message: 04/06/2008, 15h07
  3. Calcul "inter feuille"
    Par byloute dans le forum Excel
    Réponses: 1
    Dernier message: 02/01/2008, 15h25
  4. [VB6] - Erreur mémoire avec une application multi feuille
    Par Aurazed dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/07/2007, 11h37
  5. [EXCEL] Lire les données d'un fichier multi-feuilles
    Par FeydRautha dans le forum WinDev
    Réponses: 4
    Dernier message: 28/05/2007, 14h32

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