Bonjour,
Sous Symfony2.0.17 avec PHpExcel 1.7.7, LiugioExcelBundle et le n3b.
Pas moyen d'écrire dans un fichier Excel. J'arrive à lire, boucler, afficher mes tableaux dans ma page Web.
Voilà mon code:
ici le reste pour envoyer ma page
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 public function lireFeuilleAction($feuillA = 0, $feuillB = 0) { $em1 = $this->container->get('doctrine')->getEntityManager(); $fichA = "C:\Documents and Settings\bzn\Bureau\PHPExcel-Tests\FichierA.xls"; $fichB = "C:\Documents and Settings\bzn\Bureau\PHPExcel-Tests\FichierB.xls"; // créer objet reader $xls_service = $this->container->get('xls.load_xls5'); //Créer l'objet qui va charger le classeur définit dans le load $exelObj_A = $xls_service->load($fichA); $exelObj_B = $xls_service->load($fichB); //Récupération des dernières lignes et colonnes du classeur A $objWorksheet_A = $exelObj_A->getActiveSheet(); $highestRow_A = $objWorksheet_A ->getHighestRow(); $highestColumn_A = $objWorksheet_A ->getHighestColumn(); //Récupération des dernières lignes et colonnes du classeur B $objWorksheet_B = $exelObj_B->getActiveSheet(); $highestRow_B = $objWorksheet_B ->getHighestRow(); $highestColumn_B = $objWorksheet_B ->getHighestColumn(); //Récupération de la première feuille des fichier Excel //Lecture classeur "FichierB.xls" et A $sheet_A = $exelObj_A->getSheet($feuillA); $sheet_B = $exelObj_B->getSheet($feuillB); $colA = 1; $colB = 1; $compt = 0; for ($rowA = 1; $rowA <= $highestRow_A; ++$rowA) { $valA = $objWorksheet_A->getCellByColumnAndRow($colA, $rowA)->getValue(); for ($rowB = 1; $rowB <= $highestRow_B; ++$rowB) { $valB = $objWorksheet_B->getCellByColumnAndRow($colB, $rowB)->getValue(); if($valA = $valB) { // Définition de la feuille active $compt = $compt + 1; $exelObj_B->setActiveSheetIndex($feuillB); $exelObj_B->getActiveSheet()->setCellValueByColumnAndRow(1, $rowB, $valA); } } }
Comme l'écriture ne se faisait pas, j'ai essayé d'écire directement en dehors de ma boucle:
Si quelqu'un avait une idée. Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Test d'écriture dans le fichier $exelObj_B->setActiveSheetIndex(0); $exelObj_B->getActiveSheet()->setCellValueByColumnAndRow(2, 2, "Coucou!"); $exelObj_B->getActiveSheet()->setCellValue('A1', 'Fichier de test');
@ +++
Kris
Partager