none
Office Interop et ASP.Net RRS feed

  • Question

  • Bonjour,


    J'ai dernièrement réalisé une application en ASP.Net qui comporte entre autre la génération automatique de fichiers Excel et leur envoi par email.
    Pour générer les fichiers Excel j'utilise une instance de Microsoft.Office.Interop.Excel.Application.

    Cette application s'exécute dans son propre "applicationpool" qui s'exécute sous l'identité Network service.

    Mon problème :
    A chaque instanciation d'Excel coté serveur, dans une page ASP.Net, l'installation d'Excel se lance pour demander les initiales de l'utilisateur (et autres bricoles qui n'ont jamais interessé personne d'ailleurs)
    Si je génére 40 fichiers, j'ai 40 installations d'Excels, avec 40 évènements dans le log me disant que MsiInstaller n'arrive pas à ceci ou n'arrive pas à celà.
    Si je génère 50 fichiers, tout se plante.

    Je ne peux pas pré-rentrer les initiales puisque je ne peux pas me connecter en interactif sous network service.
    Je ne peux pas faire exécuter le spool sous l'identité d'un admin : ce serait le comble.

    Que faire à part remplacer Excel par un autre produit ? Peut on bloquer le lancement du MsiInstaller ?
    Sinon à quoi sert Microsoft.Office.Interop.Excel.Application dans le cas d'une application Web ?

    Merci

    lundi 30 juillet 2007 11:35

Réponses

  • Je pense que vous devriez jeter un coup d'oeil du coté du Kit de déploiement d'Office (téléchargeable gratuitement sur le site de Microsoft) afin que vous puissiez crée un fichier de transformation MST qui initialise tous les paramètres d'Excel nécessaire à la première execution/installation (N° de licence, initiale,...etc).

     

    Appliquez ensuite ce fichier MST au déploiement du MSI dans Active Directory... Normalement tout sera ainsi configuré et paramétré à l'execution d'Excel...

     

    Pour information, Microsoft.Office.Interop.Excel sert uniquement "à piloter Excel", c'est plus réaliser des tâches par programmation que l'utilisateur classique fait à la main... Cette utilisation lance Excel de façon caché et prend énormement de ressources au niveau du serveur si vous lancez plusieurs instances...

     

    Pour générer un document pure il existe d'autres solutions (avec des avantages et inconvénients) :

    • Passer par un produit tiers...
    • Utiliser OleDb, mais limité au niveau de la présentation...
    • Utiliser le nouveau format OpenXML de Microsoft (dans ce cas seul les utilisateur d'Office 2003 et 2007 pourront le lire).

    Cordialement

    • Marqué comme réponse Charles69 lundi 8 décembre 2014 11:00
    lundi 30 juillet 2007 14:35
    Modérateur