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 :
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 : 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
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>
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 <?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.
Partager