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

ASP Discussion :

Ouverture fichier Excel via ADODB


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Par défaut Ouverture fichier Excel via ADODB
    Bonjour à tous,

    Je me tourne vers vous, car je me trouve face à un problème que je n'arrive pas à résoudre.

    En ASP 4, j'ai à effectuer un traitement sur un fichier Excel, que j'ouvre via ADODB puis que je traite via des requêtes SQL.


    Mon problème vient du nom de la 1ère page, qui peut varier (surtout en fonction de la langue du client en face) : Feuil1 peut être Foglio1 ou Sheet1 etc etc.

    Or, je suis obligé visiblement de lancer un
    "SELECT * FROM [Feuil1$]" (si la page s'appelle Feuil1, of course) ...

    Quelqu'un saurait comment je peux faire pour récupérer le nom de la 1ère feuille ?

    Merci d'avance.

    Cordialement

  2. #2
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Tu peux utiliser la méthode OpenSchema pour récupérer la liste des tables de ta source de données, dans ton cas, la liste des feuilles de ton classeur.
    Tu trouveras ici un exemple d'utilisation de la méthode OpenSchema (c'est en VB, donc facilement transposable à ton cas de figure si tu codes en VBScript).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Par défaut
    Mhhh je dois être idiot ...

    Pour un test, j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    rep = Request.ServerVariables("APPL_PHYSICAL_PATH") & "upload/"
    nouveau_nom_fichier_complet = rep & "test_excel.xls"
     
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oConnExcel = Server.CreateObject("ADODB.Connection")
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" _
    & "Data Source=" & Replace(nouveau_nom_fichier_complet,"/","\") & ";" _
    & "Extended Properties=Excel 8.0;"
     
    oConnExcel.Open strConnect
    Jusqu'ici tout se passe bien (normal, déjà testé de nombreuses fois )

    Ensuite, j'essaye de passer par la méthode OpenSchema pour récupérer le nom des "tables" (en fait, les feuilles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set rs = oConnExcel.OpenSchema(adSchemaColumn)
    Do While Not rs.EOF
    	Response.Write rs("table_name")
    	rs.MoveNext
    Loop
    Mais là ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ADODB.Connection error '800a0cb3' 
     
    Object or provider is not capable of performing requested operation.
    Etant donné que je suis en ASP, et que ma base n'est pas vraiment une base, mais un fichier Excel, est-ce que c'est sensé marcher ? Je veux dire : elle n'a pas de tables systèmes etc...

    Merci en tous cas de l'idée ... et des futures

  4. #4
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    C'est normal, il faut que tu utilises la constante adSchemaTables et non adSchemaColumns à la ligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rs = oConnExcel.OpenSchema(adSchemaColumn)
    Une petite remarque : avec la constante adSchemaTables, tu vas en théorie récupérer le noms des tables ET des requêtes de ta base, mais comme ta base est un fichier Excel, ça ne devrait pas changer grand chose.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Par défaut
    En fait, j'avais essayé déjà avec adSchemaTables, je n'avais mis en code que ma 2nde tentative avec adSchemaColumns.

    Ceci étant dit, ça donne le même résultat ! hélas

    Je continue à chercher, si par hasard tu as une autre idée ... merci d'avance

  6. #6
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Dans ta deuxième tentative, tu avais écrit adSchemaColumn (il manquait le "s"). Es-tu sûr que, lors de ta première tentative, tu avais bien écrit adSchemaTables (avec un "s") ?

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

Discussions similaires

  1. [AC-2010] Ouverture d'un fichier excel via une base access
    Par yliadis dans le forum Access
    Réponses: 4
    Dernier message: 07/10/2014, 16h47
  2. [Excel 2003] Ouverture fichier excel via internet (VBA)
    Par senbo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/07/2013, 13h25
  3. Réponses: 1
    Dernier message: 26/01/2006, 18h16
  4. Script d'envoie d'un fichier excel via un formulaire
    Par Morphine.Nw dans le forum ASP
    Réponses: 4
    Dernier message: 26/01/2006, 13h08
  5. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08

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