Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
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/01/2012, 14h43   #1
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 15h16   #2
Rédacteur/Modérateur
 
Franck L.
Inscription : mai 2005
Messages : 231
Détails du profil
Informations personnelles :
Nom : Franck L.
Âge : 27
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 231
Points : 962
Points : 962
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 :
1
2
// Set cell B8
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, 8, 'Some value');
Getter
Code :
1
2
// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();
ou pour une donnée calculée
Code :
1
2
// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getCalculatedValue();
__________________
Page Developpez.com
Page Perso
Progi1984 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2012, 09h11   #3
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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 :
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 11h33   #4
Rédacteur/Modérateur
 
Franck L.
Inscription : mai 2005
Messages : 231
Détails du profil
Informations personnelles :
Nom : Franck L.
Âge : 27
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 231
Points : 962
Points : 962
Cela veut exactement dire cela.
__________________
Page Developpez.com
Page Perso
Progi1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 11h38   #5
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Oui en effet

J'ai par contre un autre souci :

Citation:
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 :
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 :
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 :
Citation:
F2
G2
72
bee
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 11h42   #6
Rédacteur/Modérateur
 
Franck L.
Inscription : mai 2005
Messages : 231
Détails du profil
Informations personnelles :
Nom : Franck L.
Âge : 27
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 231
Points : 962
Points : 962
Au lieu d'utiliser
Code :
$sheet4->setCellValue($col.$lign,"");
tu dois utiliser
Code :
$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.
__________________
Page Developpez.com
Page Perso
Progi1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h01   #7
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h11   #8
Rédacteur/Modérateur
 
Franck L.
Inscription : mai 2005
Messages : 231
Détails du profil
Informations personnelles :
Nom : Franck L.
Âge : 27
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 231
Points : 962
Points : 962
Génères tu des PDF ou des XLSX ?
__________________
Page Developpez.com
Page Perso
Progi1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h15   #9
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Citation:
Envoyé par Progi1984 Voir le message
Génères tu des PDF ou des XLSX ?
Oui, je génére des xlsx

bee
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h42   #10
Rédacteur/Modérateur
 
Franck L.
Inscription : mai 2005
Messages : 231
Détails du profil
Informations personnelles :
Nom : Franck L.
Âge : 27
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 231
Points : 962
Points : 962
Garde le dossier ZIP (je sais plus quoi) et supprime le dossier PDF dans Shared.
__________________
Page Developpez.com
Page Perso
Progi1984 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 09h12.


 
 
 
 
Partenaires

Hébergement Web