chezeu
Messages postés21Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 6 juin 2010
-
3 oct. 2008 à 14:18
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
4 oct. 2008 à 13:22
Merci pour le code mais la fonction ne s'execute pas chez moi. Qu'est qu'il faut faire? y'a t'il quelque chose à faire sur le tableau. SVP j'attend votre reponse
voici mon code.
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Export</title>
<style type="text/css">
<!--
.InEo {visibility:hidden; font-size: 9px; }
.InEo {visibility:visible; font-size: 9px }
-->
</style>
<SCRIPT type="text/javascript">
function exportToExcel(tableau) {
oExcel = new ActiveXObject('Excel.Application');
oWkBooks = oExcel.Workbooks.Add;
oExcelSheet = oWkBooks.Worksheets(1);
oExcelSheet.Activate();
nbrCellules = tableau.cells.length;
for (i = 0; i < tableau.cells.length; i++) {
nbrCellules = nbrCellules + (tableau.cells(i).colSpan * tableau.cells(i).rowSpan) - 1;
}
nbrColonnes = Math.ceil(nbrCellules / tableau.rows.length);
tab = new Array();
for (j = 0; j < nbrCellules; j++) {
tab.push('*');
}
decal = 0;
for (k = 0; k < tableau.cells.length; k++) { if ((tableau.cells(k).colSpan 1) && (tableau.cells(k).rowSpan 1)) {
if (k != (tableau.cells.length - 1)) {
while (tab.slice((k + decal), (k + decal + 1)) == '') {
decal = decal + 1;
}
}
tab.splice((k + decal),1,tableau.cells(k).innerText);
} else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan == 1)) {
tab.splice((k + decal),1,tableau.cells(k).innerText);
for (l = 0; l < (tableau.cells(k).colSpan - 1); l++) {
tab.splice((k + decal + l + 1),1,'');
}
decal = decal + tableau.cells(k).colSpan - 1;
} else if ((tableau.cells(k).colSpan == 1) && (tableau.cells(k).rowSpan > 1)) {
tab.splice((k + decal),1,tableau.cells(k).innerText);
for (m = 0; m < (tableau.cells(k).rowSpan - 1); m++) {
tab.splice((k + decal + ((m + 1) * nbrColonnes)),1,'');
}
} else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan > 1)) {
tab.splice((k + decal),1,tableau.cells(k).innerText);
for (n = 0; n < tableau.cells(k).rowSpan ; n++) {
for (o = 0; o < tableau.cells(k).colSpan ; o++) {
if ((n == 0) && (o != 0)) {
tab.splice((k + decal + n + 1),1,'');
decal = decal + 1;
} else if (n != 0) {
tab.splice(k + decal + (nbrColonnes - tableau.cells(k).colSpan) + o + 1 + ((n - 1) * nbrColonnes),1,'');
}
}
}
}
}
for (m = 0; m < tab.length; m++) {
r = Math.ceil((m + 1) / nbrColonnes);
c = (m + 1) - ((r - 1) * nbrColonnes);
oExcel.ActiveSheet.Cells(r,c).Value = tab.slice(m,(m + 1));
}
oExcelSheet.Application.Visible = true;
}
</SCRIPT>
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 oct. 2008 à 14:40
bonjour,
ben voila, même s'il fallait rester sur la question
initiale c'est bien mieux qu'un message privé !
plus de lecteurs, d'intervenants, de compétances,
plus de chances de réponses tout simplement
sans parler que ça peut intéresser d'autre personnes ...
debugger !!
nbrCellules = tableau.cells.length;
tableau.cells.length ? n'existe pas !
le nombre de cellule est lié à la ligne
tableau.rows[n° de ligne].cells.length
et pour le debug :
FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site][M'écrire]
chezeu
Messages postés21Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 6 juin 2010 4 oct. 2008 à 13:04
Ok Merci ça marche bien avec un tableau statique, mais le probléme c'est que j'ai un tableau dynamique qui est rempli avec les données de la BD, et dans ce cas ci ça ne marche plus. comment faire alors? Merci d'avance!