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] Est-ce que le format L1C1 existe ?


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [PHPExcel] Est-ce que le format L1C1 existe ?
    Bonjour à tous,

    Je me demandais si il était possible d'utiliser le format L1C1 avec PHPEXCEL ?

    Je voudrais donc introduire une donnée dans 11 et non pas dans A1.

    Merci d'avance.

    beegees

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Par défaut
    Bonjour,

    La réponse est OUI, mais pas en collant les deux coordonnées.

    Dans la documentation (page 12-13 de PHPExcel developer documentation.doc), tu as des informations.

    Setter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Set cell B8
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, 8, 'Some value');
    Getter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Get cell B8
    $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();
    ou pour une donnée calculée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Get cell B8
    $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getCalculatedValue();

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour,

    Un tout grand et sincère merci pour tes réponses à mes différents postes.

    Cela m'arrange bien que la référence L1C1 existe, car cela va me faciliter grandement mon code.

    Ceci veut dire que je peux récupérer la valeur de la cellule B8 ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Get cell B8
    $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();
    Si c'est le cas, c'est génial, car je ne pensais pas que l'on pouvait récupérer la valeur d'une cellule.

    Encore merci pour ton aide.

    beegees

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Par défaut
    Cela veut exactement dire cela.

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Oui en effet

    J'ai par contre un autre souci :

    Fatal error: Uncaught exception 'Exception' with message 'Invalid cell coordinate 72' in C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\PHPEXCEL\PHPExcel\Cell.php:508 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\PHPEXCEL\PHPExcel\Worksheet.php(959): PHPExcel_Cell::coordinateFromString('72') #1 C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\PHPEXCEL\PHPExcel\Worksheet.php(860): PHPExcel_Worksheet->getCell('72') #2 C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\PHPEXCEL\sortie_format_christine.php(208): PHPExcel_Worksheet->setCellValue('72', '[1,5[') #3 {main} thrown in C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\PHPEXCEL\PHPExcel\Cell.php on line 508
    avec ce 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
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    $sheet4 = $workbook->createSheet();
    	//$sheet4 = $workbook->getActiveSheet();
     
    	$sheet4->setTitle('TUMOR');
     
    	$events = $conn->prepare("SELECT * FROM neuro_event WHERE SUBSTRING(content_type_id,1,5) = 'tumor' ORDER BY patient_id, position");
    	$events->execute();	
     
    	$lign = 2; //ligne de début
    	$tour = 1; //cela me permet de ne pas réécrire le dmu si on est au tour 2 ou plus
    	$dmu_actuel = "";
    	$col = 0;  //colonne A commence à 0 avec les référence L1C1
    	while($event = $events->fetch())
    	{
    		$dmu_actuel = $sheet4->getCellByColumnAndRow(0, $lign)->getValue(); //je récupère dans le ficheir excel le dmu se trouvant en A1 (ou A2...)
     
    		$tumors = $conn->prepare("SELECT * FROM neuro_tumor WHERE event_ptr_id = :id_examen");
    		$tumors->execute(array(":id_examen"=>$event['content_type_id']));
    		while($la_tumor = $tumors->fetch())
    		{	
    			if($dmu_actuel != "")
    			{
    				if($dmu_actuel != $event['patient_id']) //Je vérifie si on travaille avec le même patient ou si on change de ligne 
    				{
    					$lign++; //je change de ligne
    					$col = 0; //je reviens à la colonne A
    					$tour = 1;
    				}	
    			}		
    			if($tour == 1) 
    			{
    				$sheet4->setCellValueByColumnAndRow($col, $lign, $event['patient_id']);
    				$col++;	
    			}
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$event['event_date']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['ap_number']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['surgery_type']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['tumoral_bloc']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['infiltrant_cells']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['radio_necrosis']);
    			$col++;
    			$sheet4->setCellValueByColumnAndRow($col, $lign,$la_tumor['corticoids']);
    			$col++;
     
    			//histochimie
    			$tumor_histochimie = $conn->prepare("SELECT * FROM neuro_tumor_histochimie WHERE event_ptr_id = :id_examen");
    			$tumor_histochimie->execute(array(":id_examen"=>$event['content_type_id']));
     
    			$tumor_histo = $tumor_histochimie->fetch();
     
    			$sheet4->setCellValue($col.$lign,$tumor_histo['ki67']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['hot_spot']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['p53']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['IDH1']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['GFAP']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['marquage_cadre']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['OLIG']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['Synaptophysine']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['Beta3Tubuline']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['NFP']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['NeuN']);
    			$col++;
    			echo "$col++";
    			$sheet4->setCellValue($col.$lign,$tumor_histo['Vimentine']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['EMA']);
    			$col++;
    			//$sheet4->setCellValue('W'.$lign,$tumor_histo['marquage_cytoplasmique_nucleaire']);
    			$sheet4->setCellValue($col.$lign,$tumor_histo['marquage_dot']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['EGFR']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['Betacathenine']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_histo['INI1']);
    			$col++;
    			//BIOL_MOLECULAIRE
    			$tumor_biologie_moleculaire = $conn->prepare("SELECT * FROM neuro_tumor_biol_moleculaire WHERE event_ptr_id = :id_examen");
    			$tumor_biologie_moleculaire->execute(array(":id_examen"=>$event['content_type_id']));
     
    			$tumor_biologie_mol = $tumor_biologie_moleculaire->fetch();
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['IDH1_BIOL']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['MGMT1']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['1p']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['19q']);
    			$col++;
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['EGFRIHC']);
    			$col++;
    			//$sheet4->setCellValue('AF'.$lign,$tumor_biologie_mol['EGFRCISH']);
    			$sheet4->setCellValue($col.$lign,$tumor_biologie_mol['p16']);
    			$col++;
    		}
    		$tour++;
    	}
    Serions-nous limité en colonne avec PHPEXCEL ?

    Voici le code de la méthode coordinateFromString :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static function coordinateFromString($pCoordinateString = 'A1')
    	{
    		if (preg_match("/^([$]?[A-Z]{1,3})([$]?\d{1,7})$/", $pCoordinateString, $matches)) {
    			return array($matches[1],$matches[2]);
    		} elseif ((strpos($pCoordinateString,':') !== false) || (strpos($pCoordinateString,',') !== false)) {
    			throw new Exception('Cell coordinate string can not be a range of cells.');
    		} elseif ($pCoordinateString == '') {
    			throw new Exception('Cell coordinate can not be zero-length string.');
    		} else {
    			throw new Exception('Invalid cell coordinate '.$pCoordinateString);
    		}
    	}
    En faisant un echo dans la méthode, je vois qu'il y a une référence bizarre :
    F2
    G2
    72
    bee

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Par défaut
    Au lieu d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sheet4->setCellValue($col.$lign,"");
    tu dois utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sheet4->setCellValueByColumnAndRow($col, $lign, 'Some value');
    Cela devrait fonctionner.

    Pourquoi ?

    setCellValue utilise les coordonnées de type A1, B2, C3.
    setCellValueByColumnAndRow utilise les coordonées 0,0 ; 1,1 ; x,y.

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Merci pour ta réponse.

    En fait, j'avais fait un mauvais copié/collé.

    Dis moi, est-ce que le dossier "shared" est totalement indispensable pour l'utilisation de cette bibliothèque ?

    Le problème est qu'elle fait plus de 17 MB et que allourdi beaucoup mon site et la recherche dans ce dernier.

    Merci encore pour tout.

    bee

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Par défaut
    Génères tu des PDF ou des XLSX ?

  9. #9
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par Progi1984 Voir le message
    Génères tu des PDF ou des XLSX ?
    Oui, je génére des xlsx

    bee

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

Discussions similaires

  1. Est ce que une sécurité parfaite existe?
    Par fanmanga dans le forum La taverne du Club : Humour et divers
    Réponses: 68
    Dernier message: 01/07/2017, 12h05
  2. [log4j] est-ce que le logger "intel" existe ?
    Par ]matmat[ dans le forum Logging
    Réponses: 6
    Dernier message: 30/01/2007, 21h23
  3. Est-ce que ça existe ?
    Par LadyWasky dans le forum Bases de données
    Réponses: 5
    Dernier message: 14/10/2005, 15h33
  4. est ce que un champs existe dans la base?
    Par cha_cha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 03/10/2005, 11h25
  5. Est ce que ça existe une api java pour code barre ?
    Par miloud dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 14/04/2005, 17h20

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