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.