Asp.net - génération d'un fichier excel (en utilisant l'obget com excel) en asp.net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 434 fois - Téléchargée 34 fois

Contenu du snippet

Le second exemple est une utilisation d'Excel lui même sur le serveur pour générer ce fichier.
Ceci est pratique lorsqu'on a déja Office installé sur le serveur (de préférence) et que l'on a un fichier modèle à ouvrir, charger d'info et enregistrer ailleur.

Il faut référencer l'objet COM Excel dans Visual Studio.NET (cf le référencement dans mes autres articles de ASP.NET).
Ensuite un exemple de code donnera ceci :

Source / Exemple :


Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim Repertoire As String = Server.MapPath(".")

xlapp = New Excel.Application()
xlapp.Visible = False
xlbook = xlapp.Workbooks.Add

xlsheet = xlapp.Sheets(1)
xlsheet.Name = "Ma Feuille Excel"
xlsheet.Range("A1").Value = "Bienvenue"
xlsheet.Range("A2").Value = "Sur"
xlsheet.Range("A3").Value = "ASP-PHP"
xlsheet.Range("A4").Value = "DotNet"

xlsheet.SaveAs(Repertoire & "\Export_Excel\" & LeNomFichier & ".xls")

Conclusion :


Il suffit alors d'adapter ce bout de code à vos souhaits.
Pour info je me sers de ce système pour charger un annuaire téléphonique sur plusieurs feuilles pour l'annuaire en ligne de l'entreprise.

Romelard Fabrice (Alias F___)

A voir également

Ajouter un commentaire

Commentaires

cs_Domilo
Messages postés
32
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
22 février 2005
-
Personellement, je n'arrive pas à mettre en place ce principe. (avec Office XP anglais et .Net français)

Les premiers tests bloquaient sur le fait que ASPNET n'avait pas les droits d'exécution.
J'ai résolue cela en ouvrant les droits avec DCOMCNFG.EXE.

Mais je me heurte maintenant à une erreur juste sur la ligne ".visible = False" avec :
"System.InvalidCastException: QueryInterface for interface Excel._Application failed."

J'ai fait des essais en changeant le CurrentCulture mais en vain...

Si quelqu'un peux éclairer ma lanterne...
Merci.
cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
La je suis desole pour toi mais ne pourrais pas t'aider sur ta config (les melanges de lamgues pour les machines sont un vrai casse tete, car souvent les applications ont de tres legeres differences qui font planter certaines options), regarde sur google avec ASP.NET Excel XP.

On ne sait jamais, bonne chance

F___
cs_Barz
Messages postés
12
Date d'inscription
vendredi 28 septembre 2001
Statut
Membre
Dernière intervention
18 décembre 2008
-
J'ai le meme problème que Domilo concernant les droits d'execution, j'aimerais bien que l'on me détaille la manip exacte à faire pour enlever ce problème.

Merci d'avance
cs_Domilo
Messages postés
32
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
22 février 2005
-
Barz,
Je n'avais pas de problème de droits d'exécution, mais il semble que ma machine avait (et a hélas toujours) un conflit quelque part.
J'ai réussi à fair tourner telquel mon programme sur une autre.
As-tu réussi à utiliser DCOMCNFG ?

Maintenant je n'utilise plus cette façon de générer une page excel, je passe par du HTML henrichi avec des propriétés destinées à excell. Ce n'est pas évident à décrire d'autant que j'utilise du XSL.
cs_Barz
Messages postés
12
Date d'inscription
vendredi 28 septembre 2001
Statut
Membre
Dernière intervention
18 décembre 2008
-
Non j'ai pas reussi, il ne veut pas me prendre le Excel.exe dans les composants com. J'ai lu sur un autre site que cela pouvait être du au fait que c'était un exe comme composant (version 10) alors que les versions d'avant c'était des dll.

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.