Création de rapports excel dynamique en asp

Soyez le premier à donner votre avis sur cette source.

Vue 18 878 fois - Téléchargée 1 423 fois

Description

Je sais qu'il y a déjà beaucoup de sources sur le chargement et la création de fichiers Excel en ASP mais pourtant aucune ne correspondaient pas à ce dont j'avais besoin alors je me suis inspiré de sources existantes pour pondre ce petit bout de code qui aidera peut-etre les gens ayants le meme besoin.

Les sources d'inspirations étants diverses je remerci globalement les gens qui reconnaitrons du code venant d'eux.

Pas besoin de me faire la morale en me disant qu'effectuer des reporting en utilisant cette méthode
tien plutot du bricolage que de la programmation, je le sais mais quand on a pas d'outil de reporting sous la main,
pas le temps ni l'envie de se casser la tête autant utiliser le bricolage.

Bref je m'explique :

Besoin :

- Créer dynamiquement un fichier de rapport sous Excel contenant des graphiques à partir d'une base de données et l'afficher au client

Problème :

- Chaque client du site doit pouvoir créer un rapport contenant des données personnels et il doit être le seul à pouvoir le télécharger

Ce que je savais faire :

- Créer le rapport excel dynamiquement en VB
- Enregistrer le fichier créé sur le serveur

Ce que je ne saivais pas faire :

- Créer le fichier directement en ASP avec les balises (Gros problème pour les graphiques)
- Supprimer le fichier Excel du serveur une fois le téléchargement terminé pour éviter qu'un autre utilisateur puisse le charger

Solution :

1) Création du fichier Excel en VB
2) Enregistrement du fichier sur le serveur
3) Download du fichier sur le client
4) Suppression du fichier sur le serveur

Il existe toujours un petit risque entre le moment ou le fichier est sur le serveur et celui ou il est supprimé mais dans mon cas j'ai considéré ce risque comme négligeable.
Cette source peut aussi être utilisée dans le cas ou le fichier excel existe déjà sur le serveur.

Note :

1) Pour créer un objet Excel.Application (Set ExcelObj = CreateObject("Excel.Application")) il faut qu'Excel soit installé sur le serveur avec les droits qui vont bien pour l'utilisateur internet
2) Pour enregistrer le fichier excel sur le serveur il faut que l'utilisateur internet ait les droits en écriture sur le dossier

Codes Sources

A voir également

Ajouter un commentaire Commentaires
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
9 nov. 2007 à 21:05
Peut-être en remplacant :

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "inline; filename=" & fileName

par :

Response.ContentType = "application/octetstream"
Response.AddHeader "Content-Disposition", "attachment; filename="""& fileName &""""
Response.AddHeader "Cache-Control", "must-revalidate, post-check=0, pre-check=0"
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "Expires", 0

Je ne garantie rien car je n'ai pas la possibilitée de tester immédiatement.
simon_eyer Messages postés 5 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 8 novembre 2007
8 nov. 2007 à 03:16
Vraiment géniale ta source. Est-ce que c'est possible que cela soit Microsoft excel qui ouvre au lieu que l'excel se charge dans la fenêtre d'Internet Explorer?

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.