IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Chargement et utilisation d'une DLL [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre Expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 377
    Billets dans le blog
    1
    Par défaut Chargement et utilisation d'une DLL
    Bonjour à tous,

    j'explique mon besoin : je souhaite exécuter un script PowerShell qui parse un fichier Excel (j'utilise l'objet "Interop.Excel"). Or sur ma machine Office n'est pas installé (et ne le serra pas malheureusement ^^), du coup je pensais installer seulement la DLL qui m'intérèsse, c'est à dire : Microsoft.Office.Interop.Excel.dll

    Malheureusement cela ne fonctionne pas du tout, après le chargement de ma DLL, la création de l'instance de l'objet tomb en erreur.

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
        try
        {
            try 
            {
                Add-Type -Path "C:\Temp\reflex\importExcel\Microsoft.Office.Interop.Excel.dll"
            }
            catch 
            {
                [System.Reflection.Assembly]::LoadFile("C:\Temp\reflex\importExcel\Microsoft.Office.Interop.Excel.dll")
            }
        }
        catch
        {
            write-host -f red "[ERROR] load excel dll"
            write-host $Error[0]
            return
        }
        
        try 
        {
            # $xl = New-Object Microsoft.Office.Interop.Excel.ApplicationClass
            $xl = New-Object -comobject Microsoft.Office.Interop.Excel.ApplicationClass
            $wb = $xl.Workbooks.Open($pathExcel)
            $ws = $wb.Sheets.Item(1)
        }
        catch 
        {
            write-host -f red "[ERROR] Problem exist with the excel file : " $pathExcel
            write-host $Error[0]
            return
        }
    La sotie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GAC     Version     Location
    ---     -------     --------
    False   v1.1.4322   C:\Temp\......
    
    
    New object : Retrievinf the COM class factory for component with CLSID {0000....000} failed due to the following error: 80040154 Class not registered (Exception from HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
    ...

    Can you help me ?

    Samuel_

  2. #2
    Membre Expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 377
    Billets dans le blog
    1
    Par défaut
    Je répond moi-même à mon post ^^

    Je pensais que l'intérêt des DLL Interop était de pouvoir se passer d'Office, mais apparemment cela sert uniquement de "pont" entre les langages .NET et les objets COM créés par Office.

    J'ai trouvé une solution en utilisant OLEDB comme expliquer içi : http://blogs.technet.com/b/heyscript...ing-excel.aspx, dans la seconde partie de l'article.

    J'ai dû installer le Data Provider Microsoft suivant : Microsoft Access Database Engine 2010 Redistributable.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/06/2005, 21h45
  2. [DLL] Utilisation d'une DLL pour utiliser serveur Firebird
    Par sekiryou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 14h20
  3. [Info]Utilisation d'une Dll
    Par Assiobal dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/06/2004, 21h46
  4. [BP7] Problème chargement de ressource dans une DLL
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 26/07/2003, 21h36
  5. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo