Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 29/11/2011, 18h50   #1
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 86
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 86
Points : 17
Points : 17
Par défaut chargement et exportation du fichier excel avec PHPExcel + javascript + php

Bonjour,
Sujet:
En entrée, j'ai un fichier Excel que je doit lire et affichée les données dans une table dans une page web et je rajout une colone de checkbox pour apres voir quelle linge faut conserver ou supprimer. La lecture et l'affichage se passe pas mal par contre l'exportation des lignes a conserver ne fonctionne pas.


voila mon code de lecture :
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
 
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>Tableau de voisngae 2G 2G</title>
</head>
<body>
 
<?php
$File_name = "2G2G13.xls";
require_once 'PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load($File_name);
?>
 
<table id="tableau" border="1" align="center">
        <thead>
          <tr  BGCOLOR=FF6600>
              <th><font color=black>Nom_S</font></th>
              <th><font color=black>LAC_S</font></th>
              <th><font color=black>CI_S</font></th>
              <th><font color=black>Nom_V</font></th>
              <th><font color=black>LAC_V</font></th>
              <th><font color=black>CI_V</font></th>
              <th><font color=black>Distance(Km)</th>
              <th><font color=black>Plaque</font></th>
              <th>
                  <button type="button">
                  <font color=black>Ajouter</font>
                  </button>
 
              </th>
          </tr>
         </thead>
 
<tbody>
<?php
 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
  $highestRow         = $worksheet->getHighestRow();
  $highestColumn      = $worksheet->getHighestColumn();
  $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
?>
                          <?php
                          for ($row = 2; $row <= $highestRow; ++ $row) {
                          ?>
                             <tr>
                             <?php
                             for ($col = 0; $col < $highestColumnIndex; ++ $col) {
                               $cell = $worksheet->getCellByColumnAndRow($col, $row);
 
                               $val = $cell->getValue();
 
                               $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
 
                             if ( $val == "A" ) {
                             ?>
                               <td align="center"><input name="Ajouter" align="center" align="center" type="checkbox" value="0" id="<?php echo $row; ?>" checked></input></td>
 
                             <?php } else { ?>
                                     <td><?php echo $val; ?></td>
 
                             <?php }
                             }
                             ?>
                             </tr>
                           <?php
                           }
                           ?>
 
<?php
}
 
?>
</tbody>
 
<SCRIPT language="Javascript">
  function sauverResultatEpreuve()
  {
      var arrayLignes = document.getElementById("tableau").rows;
      var longueur = arrayLignes.length;
      for(var iter=1; iter < longueur; ++iter)
      {
        alert(iter);
        var arrayColonnes = arrayLignes[1].cells;
        alert((arrayColonnes[0].innerHTML));
        var largeur = arrayColonnes.length;
        var valeur =  arrayColonnes[8].innerHTML;
        alert(valeur);
        var input = document.getElementById(iter + 1);
        var id_cb = input.id;
        alert(id_cb);
        if ((document.getElementById(id_cb).checked) == false)
        {
           document.getElementById('tableau').deleteRow(arrayLignes[1].rowIndex);
        }
        else
        {
                  go();
        } 
}
 
    }
 
function getXhr(){
      var xhr = null;
      if(window.XMLHttpRequest) // Firefox et autres
           xhr = new XMLHttpRequest();
      else if(window.ActiveXObject){ // Internet Explorer
                                   try {
                                        xhr = new ActiveXObject("Msxml2.XMLHTTP");
                                    } catch (e) {
                                        xhr = new ActiveXObject("Microsoft.XMLHTTP");
                                    }
                                }
                                else { // XMLHttpRequest non supportéar le navigateur
                                   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                                   xhr = false;
                                }
                                return xhr
                        }
 
                        /**
                        * Méode qui sera appelésur le click du bouton
                        */
 
                        function go(){
                                var xhr = getXhr()
                                // On déni ce qu'on va faire quand on aura la rénse
                                xhr.onreadystatechange = function(){
                                        // On ne fait quelque chose que si on a tout reçet que le serveur est ok
                                        if(xhr.readyState == 4 && xhr.status == 200){
                                                alert(xhr.responseText);
                                        }
                                }
                                xhr.open("GET","ajax.php",true);
                                xhr.send(null);
                        }
 
</SCRIPT>
</table>
<button type="button" onclick="JavaScript:sauverResultatEpreuve()">
           <font color=black>Ajouter</font>
</button>
 
<script language="javascript"></script>
</body>
</html>
A l'aide du code java script je parcours mon table HTML et j'essaye verifier pour chaque si le chekcbox est coché ou non et en utilisant les fonction ajax , j'essaye de créer un fichier excel avec les lignes dont le checkbox est coché . Je joint un fichier (ajax.php) que j'appele depuis le javascript (c'est juste un exemple)
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
 
<?php
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
   $objPHPExcel = new PHPExcel();
 
       // Set properties
       $objPHPExcel->getProperties()->setCreator("ThinkPHP")
                        ->setLastModifiedBy("Daniel Schlichtholz")
                        ->setTitle("Office 2007 XLSX Test Document")
                        ->setSubject("Office 2007 XLSX Test Document")
                        ->setDescription("Test doc for Office 2007 XLSX, generated by PHPExcel.")
                        ->setKeywords("office 2007 openxml php")
                        ->setCategory("Test result file");
 
       $objPHPExcel->getActiveSheet()->setTitle('Wordetweb demonstration');
       // Remplissage de cellules
       $objPHPExcel->setActiveSheetIndex(0)
                   ->setCellValue('B2', 'Essai de ')
                   ->setCellValue('C2', iconv("ISO-8859-1", "UTF-8", 'créion de'))
                   ->setCellValue('D2', 'fichier EXCEL')
                   ->setCellValue('B3', 'avec  PHPExcel');
        // Ecriture du fichier excel
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('PHPExcel/MyExcel.xlsx');
        ?>


J'ai 2 questions:
1. Comment je peux passer les lignes dont le checkbox est coché ?
2. Pourquoi le fichier que j'essaye de créer ne fonctionne pas, ie. le fichier ne se cree pas ?


Merci en avance pour votre aide.
kass28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 16h54   #2
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
Citation:
Envoyé par kass28 Voir le message
1. Comment je peux passer les lignes dont le checkbox est coché ?
En submitant le formulaire.

Citation:
Envoyé par kass28 Voir le message
2. Pourquoi le fichier que j'essaye de créer ne fonctionne pas, ie. le fichier ne se cree pas ?
T'as des erreurs?
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

Linus Torvalds
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h34.


 
 
 
 
Partenaires

Hébergement Web