aljazzar
Messages postés24Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention 5 avril 2007
-
30 mars 2007 à 14:23
twelf
Messages postés1Date d'inscriptionmardi 13 janvier 2015StatutMembreDernière intervention13 janvier 2015
-
13 janv. 2015 à 11:19
Bonjour tt le monde,
en effet je veux un script qui récupére les données dans un tableau html et qui génére ensuite un fichier csv ( « comma-separated values », « comma-separated values » pour representation des données tabulaires).
sur ce forum un script qui ressemble un peu a ce que je veux mais comme je suis débutant j'ai du mal a le modifier "car je suis nul en js", en fait le script que j'ai trouvé consiste a donnée un id (tag) au tableau html qu'on veut traité, ensuite en cliquant sur un boutant ..EXCEL se lance et on y trouve ttes les données du tableau html, mais ce que je veux c'est tt simplement généré un fichier .csv
Aidez moi chers amis car j'ai vraiment besoin de votre aide
aljazzar
Messages postés24Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention 5 avril 20071 30 mars 2007 à 16:09
RE !
peux tu s'il te plait m'envoyer un exemple de script d'une fonction qui prend en arg un id (le id du tableau html <table id= idTable > ) , qui récupere les données de ce tableau et qui retourne un fichier contenant tte ces données séparé par ";" .
aljazzar
Messages postés24Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention 5 avril 20071 30 mars 2007 à 16:20
En fait je suis completement nul en js , c'est la premier fois que j'utilise ce langage , je veux juste un petit exemple ... un tout petit ensuite je me debrouillerai .
en effait je veux un code qui ressemble a celui la (voir en bas) mais qui au lieu de lancer EXCEL , me générera en sortie un fichier csv « comma-separated values ».
Voila le code que j'ai trouvé sur ce site :
/*****************************************
@Nom de la fonction : exportToXL
@Description : Rempli une feuille Excel avec le contenu
d'un tableau
@Entrées :
id -> id du tableau à exporter
@Sorties :
En cas d'erreur renvoie false
---------------------------------------------------------*/
function exportToXL(id) {
eSrc=document.all(id) // recherche le composant ayant cet id
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;
}
// on calcule ici le nombre de cellule du tableau.
nb_cellule=eSrc.cells.length
for (var i = 0; i < eSrc.cells.length; i ++)
{
nb_cellule=nb_cellule+eSrc.cells(i).colSpan-1
}
// on en deduit le nombre de colonne de notre fichier excel
cols = Math.ceil(nb_cellule / eSrc.rows.length);
// nombre de cellule qu'il faut "passer " a cause du colspan
nb_colspan=0
// on initialise les valeures des cellules des tableau excel
for (var i = 0; i < eSrc.cells.length; i ++)
{
var c, r;
r = Math.ceil((i+nb_colspan+1) / cols); //lignes excel en cours
c = (i+nb_colspan+1)-((r-1)*cols) //colonnes excel en cours
nb_colspan = nb_colspan+eSrc.cells(i).colSpan-1; // mise a jour de nb_colspan
// gestion du colspan, on effectue un centrage sur plusieurs cellules ...
if (eSrc.cells(i).colSpan > 1 )
for (var j = 0; j < eSrc.cells(i).colSpan; j ++){
oExcel.ActiveSheet.Cells(r,c+j).HorizontalAlignment = 7 ;
// xlCenterAcrossSelection = 7 dans VBA
}
// pour le codage des couleurs j'ai pas trouver comment faire pour que ce soit autaumatique la convertion
// alors elle est manuelle: 336699 c'est du RVB en HEXA leur chiffre sous excel
// j'en ai aucune idée ...
if (eSrc.cells(i).bgColor=='#336699') // gestion des couleurs
for (var j = 0; j < eSrc.cells(i).colSpan; j ++)
oExcel.ActiveSheet.Cells(r,c+j).Interior.Color = 3368601 ;
// mise en forme dans excel celon la classe de la cellule si vous avez un fichier CSS
if (eSrc.cells(i).className=='titre' )
{
oExcel.ActiveSheet.Cells(r,c).Font.Bold = true;
oExcel.ActiveSheet.Cells(r,c).Font.Size = 15;
oExcel.ActiveSheet.Cells(r,c).WrapText = false; // pas de retour a la ligne automatique
oExcel.ActiveSheet.Cells(r,c).Font.ColorIndex = 3;
}
if (eSrc.cells(i).className=='sstitre' )
{
oExcel.ActiveSheet.Cells(r,c).Font.Bold = true;
oExcel.ActiveSheet.Cells(r,c).Font.Size = 12;
}
//En tête de colonnes
if (eSrc.cells(i).tagName == 'TH') {
oExcel.ActiveSheet.Cells(r,c).Font.Bold = true;
}
// 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;
}
oExcel.ActiveSheet.Cells.EntireColumn.AutoFit; // ajuster la largeur des colonnes sous excel.
oExcelSheet.Application.Visible = true;
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 30 mars 2007 à 16:34
ne comptes pas trop sur les autres pour tout te faire,
tentes de remplacer la gestion d'Excell par l'écriture dans un fichier :
tu as toutes les billes, la syntaxe...
reposes une question si un point ne fonctionne pas.
<hr />
aljazzar
Messages postés24Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention 5 avril 20071 30 mars 2007 à 16:53
T'as raison , sauf que je n'ai jamais fait de ma vie du js, et c'est depuis 6 mois que je prends des cours en informatique donc c'est pas aussi simple pour moi que ça . !
de toute maniere je te remercie pour tes réponse.
si jamais tu change d'avis et que t'as un tout petit peu de temps pour adapter le code que je t'ai montré a mon cas , je serai tres reconnaissant .
mon mail est : mathematicien@hotmail.com
P.S : si t'as besoin de quoi que ce soit en maths ...je serai a ta disposition
Nitruk
Messages postés128Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention20 juillet 2009 30 mars 2007 à 22:21
6mois en prog web c'est suffisant pour fair ce genre de choses (j'y suis depuis à peu près 6 mois aussi, sans travail intensif, quand 'jai du temps libre parfois, autodidacte, avec parfois l'aide de Bultez aussi que je dois remercier, et en naviguant entre html, css (bon ca c'est fait), javascript , PHP, et d'autres langages processesurs quand l'envie m'en vient). ENfin bref je vais te dire ce que je vois en regardant rapidement.
Le code que tu as donné (et dont l'auteur fait autant de fautes de français que toi) utilise un ActiveX spécial avec des fonctions spécifiques à Excel. Toi ce qu'il te faut c'est récupérer les données (dans ton tableau si j'ai bien compris) en le séparant par des 'comas', donc avec une boucle -> une entrée, une apostrophe, une entrée, une apostrophe... puis après utiliser les fonctions d'écriture de fichier (avec un ActiveX aussi à ce que t'a dit Bultez, regarde celui qu'il t'a donné, ou si tu ne comprends pas lance des recherches sur les fonctions d'écriture de fichier en javascript) et après tu n'as plus qu'à entrer la variable texte précéement créée dans le fichier, ligne par ligne.
Tout ça si 'jai bien compris ce que tu voulais faire, je n'ai jamais vu un efichier csv de ma vie.
mehdipolo
Messages postés4Date d'inscriptionlundi 19 mars 2007StatutMembreDernière intervention22 juillet 2009 20 juil. 2009 à 12:09
Bonjour à tous,
agréable discussion ;-) je sais que ça date de longtemps mais je veux juste porter une remarque:
les exemples fournis marchent juste IE, pas de truc pareils pour fireFox ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 juil. 2009 à 12:24
plus de 2 ans !
>>les exemples fournis marchent juste IE,
à l'époque oui
>>pas de truc pareils pour fireFox ?
si, aujourd'hui, on peut
( pas encore avec opera, chrome, safari ... je pense )
ch'tiot exemple ici qui gère des fichiers
locaux avec FireFox ( et liens vers des
explications )
Quelques années ont passé mais je me suis retrouvé devant le même problème. J'ai écrit un script en JS/jQuery permettant d'exporter en CSV les premières et deuxièmes colonnes d'une table HTML :