Cette fonction ouvre Excel sur votre poste avec le contenu complet du tableau entré en paramètre.
La fonction peut s'utiliser tel quel dans un fichier HTML.
Il est toujours possible de faire quelques modifications afin d'ajouter un peu de couleurs et de créer des bordures.
Source / Exemple :
<HTML>
<HEAD>
<TITLE>
</TITLE>
</HEAD>
<SCRIPT LANGUAGE=javascript>
<!--
/*---------------------------------------------------------
Nom de la fonction : exportToXL
Description : Rempli une feuille Excel avec le contenu
d'un tableau
Entrées :
eSrc -> tableau à exporter
Sorties :
En cas d'erreur renvoie false
---------------------------------------------------------*/
function exportToXL(eSrc) {
var oExcel; // Application Excel
var oExcelSheet; // Feuille de calcul
var oWkBooks;
var cols; // Nombre de colonnes du tableau
oExcel = new ActiveXObject('Excel.Application');
oWkBooks = oExcel.Workbooks.Add;
oExcelSheet = oWkBooks.Worksheets(1);
oExcelSheet.Activate();
if (eSrc.tagName != 'TABLE') {
alert('L\'export vers Excel ne fonctionne qu\'avec un tableau.');
return false;
}
cols = Math.ceil(eSrc.cells.length / eSrc.rows.length);
for (var i = 0; i < eSrc.cells.length; i ++)
{
var c, r;
r = Math.ceil((i+1) / cols); //lignes en cours
c = (i+1)-((r-1)*cols) //colonnes en cours
//En tête de colonnes
if (eSrc.cells(i).tagName == 'TH') {
oExcel.ActiveSheet.Cells(r,c).Font.Bold = true;
oExcel.ActiveSheet.Cells(r,c).Interior.Color = 14474460; //gris
}
// Texte en gras
if (eSrc.cells(i).childNodes.length > 0 && eSrc.cells(i).childNodes(0).tagName == "B")
oExcel.ActiveSheet.Cells(r,c).Font.Bold = true;
// Rempli le contenu
oExcel.ActiveSheet.Cells(r,c).Value = eSrc.cells(i).innerText;
}
oExcelSheet.Application.Visible = true;
}
//-->
</SCRIPT>
<BODY>
<FORM id=oForm>
<TABLE id=idTable cols=3 name=idTable>
<TR><TH>Titre 1</TH><TH>Titre 2</TH><TH>Titre 3</TH></TR>
<TR><TD>Cell 1</TD><TD>Cell 5</TD><TD>Cell 5</TD></TR>
<TR><TD><b>Cell 2</b></TD><TD>Cell 6</TD><TD>Cell 5</TD></TR>
<TR><TD>Cell 3</TD><TD>Cell 7</TD><TD>Cell 5</TD></TR>
<TR><TD>Cell 4</TD></TR>
</TABLE>
</FORM>
<INPUT type="button" value="Button" id=button1 name=button1 onCLick="exportToXL(oForm.all('idTable'))">
</BODY>
</HTML>
Conclusion :
Petite remarque bête. Mais on instancie ici un ActiveX. Donc pour que ce script fonctionne, il faut activer les contrôles ActiveX dans les paramêtres de securité.
Pour ceux qui ont Excel 2000 sur leur poste, aller sur c:\program files\Microsoft Office\Office\1036\Msowcvba.chm. Vous y trouverez l'aide des composants Microsoft Office. Pour pourrez ainsi améliorer la fonction.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.