Création d'un Word ou Excel à partir d'une page ASP

Création d'un Word ou Excel à partir d'une page ASP - ASP - Programmation

Marsh Posté le 27-07-2006 à 15:48:43    

Bon je débute plus ou moins dans l'ASP et j'aurais besoin d'un petit coup de main.
 
Voila j'ai fait une petite appli de Statistique sur nos intervention informatique, le problème j'ai fait cela sur mon micro mais mon responsable aimerais avoir les resultats (c'est lui qui à demander les stats).
 
Ma page ASP va intererroger la BDD et faire les calculs avec les fonctions que je lui est donné à mangé (calcul du nombre et des moyenne annuel, par utilisateur , etc...)
 
C'est bien beau le tout bien classé dans des TR et TD en HTML.
 
Maintenant y à t'il un moyen d'exporté la page t'elle qu'elle est directement dans un word. J'ai fait un copier collé de chaque tableau ca marche bien mais si je pouvais automatisé tout cela et de préférence avec un affichage paysage cela serait l'amérique.
 
Merci par avance

Reply

Marsh Posté le 27-07-2006 à 15:48:43   

Reply

Marsh Posté le 27-07-2006 à 17:33:16    

tu génères une stupide page HTML toute simple avec un bête tableau dedans, et tes valeurs (pour le cas du excel), ou des suites de balises <hx> et <p> pour word
 
et tu ajoutes le header "content-type:
<%response.ContentType="application/vnd.ms-excel"%>
ou
<% response.ContentType ="application/msword" %>

Reply

Marsh Posté le 27-07-2006 à 17:46:04    

Et Hummm la ca me dépasse un petit peu
je demande pas la reponse mais si tu avais un petit exemple cela serait bien sympathique car je debute dans l'asp :)

Reply

Marsh Posté le 27-07-2006 à 19:08:11    

et ben...
 
ouvre notepad.
 
écrit une page html bidon (avec tous les tables html, head et body comme il faut)
 
fout dedans un titre (h1) un sous-titre (h2) et quelques paragraphes (p)
 
enregistre sous le nom "toto.doc"
 
double-clic sur le fichier
=> word s'ouvre, et t'affiche ta page au format "word", en conservant la mise en forme et tout.
 
là, je te demande de faire pareil, mais en ASP :
- tu génères une page HTML en ASP, comme si tu affichais simplement tes résultats
- et tu ajoutes le content-type disant au navigateur qu'il ne s'agit pas d'un document HTML, mais Word
 
et là, quand tu chargeras la page avec internet explorer ou firefox ou autre, ça va ouvrir word et te mettre le document à l'écran.
 
idem pour excel, sauf que là, il faut faire un tableau (logique).
 
a noter que tu peux aussi faire la solution plus évoluée, mais qui reste globalement la même.
 
ouvre word 2000 ou plus. crée un fichier bateau, genre un titre et un paragraphe.
enregistrer sous > format htlm
 
=> édite le source. c'est du HTML un peu gore, que word comprendra mieux que du html classique. il permet notamment de mettre des directives pour word, genre le type d'affichage, le format du papier, etc.
 
de la même façon, tu te démerdes pour que ton asp te génère une page identique. et en content-type, toujours word (cf les balises asp que j'ai mis ci-dessus).
 
et hop !
 
tu peux même foutre des images et des macros dans ton document si tu utilises le format html à la sauce word.

Reply

Marsh Posté le 28-07-2006 à 14:51:44    

sinon, méthode bourrin : COM. tu ouvres une instance de word ou excel via COM et tu génères ta page en VBA...

Reply

Marsh Posté le 28-07-2006 à 15:24:57    

ouais, mais depuis le serveur (ASP) c'est moyen car :
1/ faut Office installé sur la machine
2/ s'assurer que JAMAIS l'ASP ne puisse planté durant la génération, sous réserve d'avoir des milliers de process word et excel en mémoire au bout de quelques heures
3/ une machine de folie, pour qu'elle puisse ouvrir word, jouer dedans, enregisrter le fichier, et fermer word, avant que la page n'expire (sans compter que plusieurs utilisateurs peuvent générer un fichier en même temps)
4/ ouvrir une faille de sécurité, à savoir habiliter le user de IIS à lancer word, avec tous les risques liée (lancer une macro-virus depuis word, etc.)
 
bref, l'idée est bonne car plus "propre" que celle que je propose. mais dans l'absolu, elle apporte plus de contraintes qu'autrechose.
et elle n'est guère plus simple à mettre en oeuvre.

Reply

Marsh Posté le 28-07-2006 à 15:39:23    

ben qand je disais que c'était bourrin :D
 
Plus sérieusement, vu qu'il parlait d'une petite appli, a priroi, c'est utilisé que par peu d'utilisateurs à la fois et pas souvent. Ca a l'air aussi d'être une appli en intranet. Ma solution peut donc être viable sous ces conditions.

Reply

Marsh Posté le 28-07-2006 à 15:43:14    

il a intérêt à mettre un gros "ON ERROR RESUME NEXT" tout en haut de sa page alors :D

Reply

Marsh Posté le 28-07-2006 à 17:59:32    

Oui c'est simplement un intranet juste pour moi mais les resultat doivent aller au directeur d'ou la necessite de generer le word ou le excel :)

Reply

Marsh Posté le 28-07-2006 à 18:25:39    

sinon, je suppose que tu récupère les données depuis une base de données ?
y'a des tas d'outils pour générer des tableau, graphiques, etc aux formats office et pdf.
pour sql server, il y a par exemple sql server report, qui est directement livré avec

Reply

Marsh Posté le 28-07-2006 à 18:25:39   

Reply

Marsh Posté le 28-07-2006 à 21:15:33    

Ah je connais pas  
 
Sinon j'utilise mysql et je crois pas qu'un outils de ce genre soit présent

Reply

Marsh Posté le 28-07-2006 à 22:59:26    

par directement avec mysql.
 
mais ça me ferait mal au c*l qu'il n'existe pas un outils genre "mybo" qui fasse la même chose.
je pense qu'à la limite, c'est pas plus mal que tu te bases sur un truc de ce genre, qui permettent une plus grande autonomie à celui qui s'en sert

Reply

Marsh Posté le 07-08-2006 à 10:18:33    

MagicBuzz a écrit :

par directement avec mysql.
 
mais ça me ferait mal au c*l qu'il n'existe pas un outils genre "mybo" qui fasse la même chose.
je pense qu'à la limite, c'est pas plus mal que tu te bases sur un truc de ce genre, qui permettent une plus grande autonomie à celui qui s'en sert


 
De mon côté, j'ai beau chercher, je ne trouve pas d'outils "tout fait" pour mysql mais ça vonctionne très bien avec
Response.ContentType = "application/vnd.ms-excel"
J'ai un soucis supplémentaire quant à mon ectraction, je veux choisir, via un formulaire, quelles données extraire.
J'explique... J'ai des champs qui parfois ne doivent pas être affichés. J'ai donc créer une page de choix avec tout un tas de boîtes à cocher.
Je récupère ces valeurs et je veux sortir mon tableau excel.
J'arrive à afficher les entêtes avec  
for i = 1 to Request.Form("choix" ).Count
%>
<TH><%Response.Write "" & Request.Form("choix" )(i)%></TH>
Par contre, je plante complêtement pour ma requête et l'affichage des données..
Si quelqu'un a une idée...
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed