EXPORTER UN TABLEAU SOUS EXCEL 2000

proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009 - 27 août 2003 à 10:37
edevouge Messages postés 4 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 8 juin 2007 - 8 juin 2007 à 11:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15985-exporter-un-tableau-sous-excel-2000

edevouge Messages postés 4 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 11:12
Ce script est bien, mais très long lorsqu'il y a plusieurs centaines de lignes de données. Malheureusement je ne pense pas qu'il existe une méthode plus rapide du moins avec JavaScript. C'est assez regrettable sachant q'un copier/coller de la table dans excel est 100 fois plus rapide.
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
11 déc. 2006 à 15:20
J'avais un probleme:
le processus "Excel.exe" restait en mémoire empêchant toute ouverture manuelle d'autres documents Excel tant que la page html estait ouverte.

Il suffit de rajouter
// fermeture de EXCEL sinon supprimer les deux lignes
oExcel.WorkBooks.Close;
oExcel.Quit();
oExcel=null;
avant le
}
//-->
</SCRIPT>

Voila Ciao
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
4 déc. 2006 à 11:39
Au poil, c'est parfait.
note:9.

Juste une question: Je ne peut pas ouvrir excel tant que la page html n'est pas fermé.
Est-ce la cas chez vous aussi.

Faut-il detruire le oExcel = new ActiveXObject('Excel.Application'); ???
Et si oui comment fait-on??

Merci d'avance et bravo!
cs_aityahia Messages postés 2 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 octobre 2006
9 oct. 2006 à 13:22
bonjours a tous bon j'ai essayé le code il fonction tres bien mais je tien a signaler qu'il ne fonctionne pas sous fireFox et que lorsque on as des feuille ColdFusion sa ne fonctionne pas je les testé avec un site ColdFusion les active ne peut pas crés le l'objet activeX.
SebOfBorg Messages postés 94 Date d'inscription dimanche 29 septembre 2002 Statut Membre Dernière intervention 26 août 2009
22 août 2006 à 18:13
Bonjour a tous,

Auriez vous quelque chose dans le même genre qui fonctionne en JAVA ?
J'essai en java de créer des fichiers Excel a partir d'une base de données.

En fait je suis un dev VB qui essai de se reconvertir en Java et je refais mes progs de VB a Java.
Mais pour le moment les Java et Excel ne sont pas bien documentés ou payant !!

A plus
Merci d'avance
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
20 juin 2005 à 09:29
bonjour,

le script marche bien a vrai dire et chacun pourra le modifier selon son choix graphique et tout ça!

mais j'ai un petit soucis...y a t il un moyen pour que via une page actuelle on affiche le contenu d'un tableau présent dans une page précédente ? ( sorte de page pop up de confirmation ou equivalent) ...comment afficher le resultat sans le reinjecter comme hidden dans cette pop up ?

merci
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012
19 juin 2005 à 14:13
Bin ouais ca marche chez moi... et à distance... de là à dire que ca marchera pour tout le monde !!
en fait ce dernier bout de code permet d'afficher -en cas de pb- aux internautes le fait qu'ils n'ont pas autorisé les activX... (Error (du type activx)).

Maintenant il faudrait que je me penche sur les cas de firefox... bcs firefox et activX ne font pas bon ménage... tu confirmes ??
a+
H
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
19 juin 2005 à 11:17
Euh a vrai dire je comprend pas tout ;-)
Mais ca marche ?
Parce que si ca marche c'est ce que tu voulais non ? ;-)

Alphonse
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012
19 juin 2005 à 10:10
Hello,
Pour ce qui est de la gestion des erreurs j'ai bidouillé un truc mais ne suis pas très content car c'est vraiment pas propre... mais ca a le mérite de marcher (au moins chez moi)

Il suffit de placer ce code au tout début du javascript (avant ttes les autres fonctions et autres)

zen pensez quoi vous qui savez coder ??????????????????

onerror = report;
function report(message,url,line)
{
typeror =/ctiv/; //pour repérer seulement les aCTIVx
// alert(typeror.test(message));
if(typeror.test(message))
{ alert('Error (du type activx): ' + message + ' at line ' + line + ' in ' + url);}
else
{ alert('Error (type autre que activx): ' + message + ' at line ' + line + ' in ' + url);}
}
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012
19 juin 2005 à 08:02
Hello,
Grand merci pour ton aide !!
c'est en effet tout à fait cela : j'ai modifié uniquement la ligne
"controles d'initialisation et de scripts d'activX non marqués comme sécurisé"
(outil> option internet > sécurité > internet) qui était en "désactivé" et je l'ai
fait passer en "demander"... et tout booom ;-)

Histoire que mes internautes n'aient pas ce genre de mésaventure je voudrais rajouter
un bout de script :
- ne montrer cette fonctionalité qu'aux personnes qui sont sous IE (vous me confirmez ??
ca marche pas sous firefox à cause des activx..et le plugin n'a pas l'air top fiable) ??
- mettre une alert windows avec tes explications si erreur javascript !

autant le premier je vois sans soucis autant le reperage de l'erreur javascript je suis
plus en soucis ! auriez-vous des pistes à me proposer ??

encore merci pr ton coup de main !

a+

H
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
18 juin 2005 à 20:05
Si cela marche en local et pas en distant, c'est un problème de configuration de ton IE
Tu vas dans outil> option internet > sécurité > après tu selectionne soit internet , soit site de confiance soit ... et tu active tout ce qui va bien ;-)

J'espere que ca va t'aider ;-)

Alphonse
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012
18 juin 2005 à 02:24
Hello !
J'essaye de faire fonctionner la source et étrangement cela fonctionne en local mais pas en distant !!
Quelqu'un aurait il une idée ??????
J'ai une erreur javascript ligne 26 car 1 (de ce code source)
Erreur un composant ActivX ne peut creer un objet
code 0
J'ai IE6 029 et la ferme intention d'utiliser ce script malgré ces mauvais début ;-)

Donc j'implore l'aide de la communauté dev : pleeeease aidez moi !

au plaisir de vous lire,

H
cs_bibi59 Messages postés 2 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 14 juin 2005
14 juin 2005 à 17:15
Salut,
je n'arrive pas a utiliser les ActiveX sous firefox, sous IE j'arrive à envoyer des données sur Excel mais pas ave firefox. J'ai pourtant téléchargé et installé le plugin ActiveX. Quelqu'un aurait un élément de réponse?
cs_bibi59 Messages postés 2 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 14 juin 2005
14 juin 2005 à 17:13
Salut,

J'ai testé le code mais je n'arrive pas a le faire marcher sous firefox, sous IE c'est bon. J'ai pourtant téléchargé et installé le plug in ActiveX
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
14 juin 2005 à 13:50
alors, Non, on ne peut pas avoir de table imbriquées (j'ai jamais fait le test, mais normalement ca marche pas ... )
Deja j'imagine la galere avec des colspam de partout ...
Si tu te sens de le faire, je serais curieux de voir le résultat ;-)

donc tablesmalltop marche très bien...
Il faut juste mettre le colspam a 13 ...

maintenant pour la mise en page, les couleurs et autres:

il faut modifier le code ici :



// mise en forme dans excel celon la classe de la cellule si vous avez un fichier CSS



if (eSrc.cells(i).className=='titre' )
for (var j = 0; j < eSrc.cells(i).colSpan; j ++)
{
oExcel.ActiveSheet.Cells(r,c+j).Font.Bold = true;
oExcel.ActiveSheet.Cells(r,c+j).Font.Size = 15;
oExcel.ActiveSheet.Cells(r,c+j).WrapText = false; // pas de retour a la ligne automatique
oExcel.ActiveSheet.Cells(r,c+j).Font.ColorIndex = 3;
oExcel.ActiveSheet.Cells(r,c+j).Interior.Color = 125478 ;
}


et Ajouter ceci par exemple :


if (eSrc.cells(i).className=='FDATAU' )
for (var j = 0; j < eSrc.cells(i).colSpan; j ++)
{
oExcel.ActiveSheet.Cells(r,c+j).Font.Bold = true;
oExcel.ActiveSheet.Cells(r,c+j).Font.Size = 15;
oExcel.ActiveSheet.Cells(r,c+j).WrapText = false; // pas de retour a la ligne automatique
oExcel.ActiveSheet.Cells(r,c+j).Font.ColorIndex = 3;
oExcel.ActiveSheet.Cells(r,c+j).Interior.Color = 125478 ;
}

Bref, on reprend ici tout les styles definis, et on défini celui que l'on veut donner dans excel ...
donc ici il faut rajouter des conditions pour les styles:
LTITCOL FTITLIGU ... Bref je pense que t'as maintenant compris comment ca marche.

Si tu veux les valeurs a mettre pour le style, tu vas dans excel, tu enregistre une macro en mettant le style que tu veux, tu va regarder le VB généré, et apres tu adapte les valeures ...

Je sais que quelqu'un a encore fait evoluer la source après moi ....
Je te laisse chercher un peu ...

Maintenant je crois que l'on ne peut pas t'aider beaucoup plus ...

Alphonse
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
14 juin 2005 à 13:18
au fait lorsque vous avez effectue le test quel id avez vous passé comme parametre? parce qu'il ya 2 table: table et tablesmalltop ! pour le premier id ca marche pas pour le second ca marche ( mais avec le probleme d'affichage)! dosi ej en deduire qu'il faut une seule table et pas des tables imbriquées pour que ca marche!!

merci
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
14 juin 2005 à 13:10
je viens de le faire !! l'affichage laisse a desirer!!pas de couleurs!! pourquoi?
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
14 juin 2005 à 13:10
A ton avis ??
ca m'a pris 5 min pour faire un copier coller,
5min pour comprendre ce qui n'allait pas
30 sec pour changer la valeur et tester ..
aller zouh je viens meme de retester sur un autre PC, car ta question me fait douter,
Re 30 sec de perdue et CA MARCHE !!!

Be happy, et maintenant t'as plus qu'a mettre 10 a la source ;-)

Alphonse
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
14 juin 2005 à 12:54
tu l'as vraiement testé?
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
14 juin 2005 à 12:00
Simple:
il faut remplacer :
<!-- Rupture -->
<tr class="LRUPTURE"><td colspan="15"> </td></tr>

par
<!-- Rupture colspan="13" -->
<tr class="LRUPTURE"><td colspan="13"> </td></tr>

Et après ca marche nikel ...
tu as 13 cellule par ligne et pas 15 ...
Erreur de HTML ;-)

Bonne continuation.

Alphonse
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
14 juin 2005 à 11:45
je vous envoie ci-joint ma page html ; j'ai pris le soin de remplacer mon texte ( issue d"un flux xml au fait ) par n'importe quoi! et voyez la difference entre le tableau genere en html et son equivalent en excel!




















----,
sddfgdgf,
fgdfgdgdg,
dfgdfgdgdfg,
dfgdfgdfgdfg,
sdfgsdfgdgdfgdfgdgdgfdfgdfgd,
sdgdfgdfgdfdfgdgdgfgdgdfgdgsdfgdsfg,


----

,
,
,
dfgdfgd,
,
dfgdsfg,
fgdfgdfg,
dfgdfgdfgdfgdfgdf,
dfgdfg,
zetgfezry,
srytr,
nqsdfjsdo,
ood^pàgfe,g,


----

ghgfnjghjgf,
fghfhh,

ghfh,
gfhfh,
tu,
tut,
ut,
tu,
tyu,
tyuty,
gyjy,
565468,
erzer,




----
,

----

hjgh,
,
,
jhj,
hjhj,
122,
--,
97,
yujku,
488,














jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
14 juin 2005 à 10:24
bonjour,

je n'arrive pas a comprenndre pourquoi le document excel generé chez moi est du n'importe quoi!! pourtant ma table html est bien construite !! en plus pas de couleurs respecté ! tout est blanc !

j'ai utilisé exactement le meme script sans modifs!!
aidez moi svp!
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
10 juin 2005 à 10:11
Si la page de test fonctionne correctement, et que la tienne ne marche pas, c'est que tu as une erreur de codage ...

regarde que les id et les names correspondent bien :
<FORM id=oForm>
<TABLE id=idTable cols=3 name=idTable>


tu peux m'envoyer ton html, ou html généré
en cliquant sur mon pseudo et en m'envoyant un message privé
si tu veux je regarderai rapidement ;-)

Alphonse
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
10 juin 2005 à 08:53
Bonjour,

alors j'utilise Excel 2003 sous XP et IE6 SP2 comme navigateur !
le probleme c'est que j'ai un autre script qui fait la même chose et ca marche sans probleme !! mais votre script ne fait rien et une erreur javascript apparait " erreur dans l apage " ou quelque chose comme ca !

est ce que la structure du document HTML même si'il est mal formé a un impact sutr le fonctionnement de se script!! en effet j'ai testé le script sur une page de test simple et ca fonctionne mais sur la miene NON :)! bizarre!
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
9 juin 2005 à 17:37
Bonjour,

Question:
as tu excel 2000, XP, 2003 ?
utilise tu internet explorer ?
as tu activé les contrôles ActiveX dans les paramêtres de securité de internet explorer ?
as tu fais un copier coller de la source dans un fichier HTML ?
Cela donne quoi ?

Alphonse

PS: après tu peux aller voir la source http://www.javascriptfr.com/article.aspx?Val=731 qui fait la meme chose avec deux trois trucs en plus...
jlassira05 Messages postés 28 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
9 juin 2005 à 15:53
Je viens de tester ce script sur ma page asp mais ca marche pas !! pourtant je l'ia teste sur un tableau tres simple!!!
cs_aminix9 Messages postés 96 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 9 février 2010
9 mars 2005 à 01:14
cher shubacca je tiens à te remercier car ton code m est venu d une grande aide!!

j ai voulu t envoyer un mail pour te remercier mais j ai pa trouver de mail!!
merci et a+ :-)
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
12 mai 2004 à 00:36
Bonjour carlosa,

le problème vient du fait qu'Excel ne stoke pas les dates au meme format que la plupart des systemes de base de donnée.

il faut donc reecrire au format Excel les dates dans le tableau de la page WEB
en gros il faut que les dates soient bien affichées: jour / mois / année ....

Et normalement ca marche nikel ;)
cs_carlosa Messages postés 9 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 12 décembre 2008
11 mai 2004 à 09:54
J'ai un problème avec mon code. J'ai une application avec des pages html et j'ai une function qui export les donnes dans excel... mais les dates ne sont pas bien interprète.... il inverse le mois et le jour....
Voila le code
------------------------------------------------------------
var oExcel; // Open Excel
var oExcelSheet; // Sheet Excel
var oWkBooks;
// COPY THE CURRENT PAGE
textRange = document.body.createTextRange();
textRange.moveToElementText(divMain);
textRange.execCommand("Copy");
// OPEN EXCEL
oExcel = new ActiveXObject('Excel.Application');
oWkBooks = oExcel.Workbooks.Add;
oExcelSheet = oWkBooks.Worksheets(1);
oExcelSheet.Application.Visible = true;

oExcelSheet.Activate();

oExcel.ActiveSheet.Range('A1').Select;
oExcel.ActiveSheet.PasteSpecial(0,false,false);


oExcel.ActiveSheet.Cells.EntireColumn.AutoFit;
oExcel.ActiveSheet.Range('A1').Select;
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
11 sept. 2003 à 22:22
il suffit de rajouter un guillemet ' de la touche 4 avant pour que excel gere cela en alpha...

au fait au passage, j'ai amélioré la source de shubacca elle est dispo sur:

http://www.javascriptfr.com/article.aspx?Val=731

bonne continuation ;)
cs_Jaja76 Messages postés 5 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 24 avril 2008
11 sept. 2003 à 17:28
Super !
Le seul problème que j'ai rencontré, c'est que Excel interprette les données en entrée.
Par exemple, si j'ai un numéro de SIRET (14 chiffres), il veut absolument me le mettre sous la forme 1,234567E12.
Y a-t-il un moyen d'obliger Excel à prendre cela comme de l'apha ?
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
27 août 2003 à 10:37
Bonjour,

tout d'abord, bravo pour cette source, elle marche pas mal du tout,

juste pour signaler qu'il peut y avoir des petits pb lors de l'exportation vers excel

ainsi si le tableau est comme ceci:

Titre 1 |Titre 2 |Titre 3 |Titre 4 |Titre 5 |Titre 6 |

----
Cell 1, Cell 5, ., Cell 1, Cell 5, Cell 5,

----
Cell 3, Cell 7, Cell 5, Cell 2, Cell 6, Cell 5,
----
Cell 4


le resultat sort sur 5 colonnes sous Excel
pour pallier a ce problème il suffit de mettre des <td></td> sur la derniere ligne ...



la solution:
Titre 1 |Titre 2 |Titre 3 |Titre 4 |Titre 5 |Titre 6 |

----
Cell 1, Cell 5, ., Cell 1, Cell 5, Cell 5,

----
Cell 3, Cell 7, Cell 5, Cell 2, Cell 6, Cell 5,
----
Cell 4




de meme, le mot clé "colspam" n'est pas pris en compte mais on peut ruser de la maniere suivante

Titre 1 |Titre 2 |Titre 3 |Titre 4 |Titre 5 |Titre 6 |

----
Cell 1, Cell 5, ., Cell 1, Cell 5, Cell 5,
----
Cell 2, , , , , ,
----
Cell 3, Cell 7, Cell 5, Cell 2, Cell 6, Cell 5,
----
Cell 4


</FORM>

Compte tenu de ces 2 points, je t'ai mis 8 car elle est pas encore au top, mais elle est deja très très bien ;)
Et oui, on peut toujours mieux faire ...

En tout cas, je te remercie pour cette source, elle est bien pratique, et me permet de faire des trucs super sympas ...

En plus le fait de pouvoir faire de la mise en forme sous excel, le pied ...
rah j'aurais du te mettre 9 , j'ai été un peu sevère ;)

J'espere que tu ne m'en tiendra pas rigueur ...

@ plus

@lph
Rejoignez-nous