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

MS SQL Server Discussion :

[SQLSERVER2000] Demande d'aide concernant l'importation de données Excel.


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut [SQLSERVER2000] Demande d'aide concernant l'importation de données Excel.
    Bonjour,

    J'utilise un lot DTS pour importer des données contenues dans des fichiers XLS (pas csv).
    La lecture et le copiage des données du fichier est automatique jusqu'à maintenant.

    Mais là j'aimerai savoir comment on fait pour lire directement dans le fichier XLS :
    - grâce à une requete
    - aller chercher les données dans telles ou telles colonnes
    - ...

    A quoi ressemble une requête de ce type pour un fichier nommée "toto.xls" dans les données se trouve dans la feuille "feuil1" dans les colonnes "A" à "Z" ?

    Cordialement

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Pour réaliser cela, vous devez tout d'abord créer une plage nommée dans Excel. Dans la version 2007 d'Excel, vous devez sélectionner la plage puis clic-droit / nommer une plage.

    Ensuite, vous pouvez utiliser la commande OPENDATASOURCE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM OPENDATASOURCE ('Microsoft.Jet.OleDB.4.0', 'Data Source=c:\MonFichierExcel.xls; extended Properties=Excel 8.0')...nomDeMaPlageDeDonnees
    Précisez bien les 3 points et extended Properties : 8 pour un fichier Excel 97-2003 (je ne sais pas comment on fait pour des .xlsx)

    Vous verrez que les valeurs que vous avez mises sur la première ligne de votre plage de données sont représentées par les noms des colonnes dans Query Analyzer ou Management Studio

    Vous pouvez ensuite effectuer, par exemple :

    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
    INSERT INTO OPENDATASOURCE ('Microsoft.Jet.OleDB.4.0', 'Data Source=c:\MonFichierExcel.xls; extended Properties=Excel 8.0')...maPlageDeDonnees 
    (
    	maColonne1DeMonFichierExcel,
    	maColonne2DeMonFichierExcel,
    	maColonne3DeMonFichierExcel
    )
    SELECT maColonne1,
    	maColonne2,
    	maColonne3
    FROM maTableEnBaseDeDonnees
     
    UPDATE OPENDATASOURCE ('Microsoft.Jet.OleDB.4.0', 'Data Source=c:\MonFchierExcel.xls; extended Properties=Excel 8.0')...MaPlageDeDonnees
    SET maColonneDansMonFichierExcel = 'uneValeur'
    WHERE monAutreColonneDansMonFichierExcel = uneAutreValeur
     
    DELETE FROM OPENDATASOURCE ('Microsoft.Jet.OleDB.4.0', 'Data Source=c:\MonFchierExcel.xls; extended Properties=Excel 8.0')...MaPlageDeDonnees
    WHERE mColonneDansMonFichierExcel = uneValeur
    A+

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Je teste tout demain et je te tiens au courant

    Par contre je doute que les secrétaires qui vont me fournir les fichiers Excel ont Office 2007.
    Comment fait on pour nommer une plage avec Office XP ou 2003 ?

    Merci beaucoup elsuket.
    Cordialement

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Pour définir une plage de données sous Excel 2003, je crois que c'est :
    Insertion > Nom > Définir.
    On est limite hors-sujet là ...

Discussions similaires

  1. Demande d'aide concernant une macro Word
    Par Idryss33 dans le forum VBA Word
    Réponses: 6
    Dernier message: 05/05/2014, 16h19
  2. demande d'aide concernant la GED
    Par choixged dans le forum GED
    Réponses: 2
    Dernier message: 15/05/2011, 12h42
  3. Réponses: 13
    Dernier message: 09/05/2011, 11h20
  4. [Débutant] demande d'aide concernant un message d'erreur
    Par herick yao dans le forum MATLAB
    Réponses: 1
    Dernier message: 24/08/2009, 14h35
  5. [eCommerce] Demande d'aide concernant ce script
    Par skyyoussef dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/10/2007, 15h32

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