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

SSIS Discussion :

[SSIS][2K5] Comment récupérer des données à partir d'un fichier Excel


Sujet :

SSIS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [SSIS][2K5] Comment récupérer des données à partir d'un fichier Excel
    bonjour,
    j'ai un fichier excel :

    Table1
    Champ1 2
    Champ2 0
    Champ3 1


    Table2
    Champ1 X
    Champ2 Y

    Table3
    Champ1 0 1 2

    Table4
    Champ1 A B C D E
    Champ2 E A S F G

    tous ces données sont sur une seul feuille.
    ma question : comment récuperer ces données pour faire une insertion ou modification (si les données existe) dans une base de données sql server 2005
    qui comporte 4 tables.

    exemple je dois récuperer
    Table1
    Champ1 2
    Champ2 0
    Champ3 1

    du fichier excel ensuite aller à la base sql, table1 si l'enregistrement existe alors update table set champ1=0,champ2=1 where champ1=2
    sinon insert.

    je sais que la structure du fichier est mauvaise mais je dois faire avec.

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Salut,

    Il est clair que la structure de ton fichier Excel n'est pas adaptée à une utilisation directe.

    Moi je vois au moins 2 solutions plus ou moins complexes:

    1) implémenter un composant "script" de type source dans un "data flow task".

    Il te suffit de coder une fonction en VB.Net.
    Cette fonction pourrait faire de l'automation Excel de manière à ouvrir le fichier et récupérer le contenu de tes cellules.

    2) traiter le fichier comme un CSV. Tu lit les données comme si elles ne faisaient partie que d'une seule colonne puis tu t'amuses à parser les lignes pour détecter les débuts de table ainsi que les valeurs de chaque colonne.

    Pour le reste du traitement (insert ou update), c'est du classique SSIS. La seule difficulté est donc de traiter la source "au mieux".

    Bon ça demande plus de boulot que d'utiliser un composant tout fait mais cela devrait fonctionner.

  3. #3
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Il est également possible de créer un outils C# pour traiter spécifiquement ces fichiers Excel. Il est alors possible d'appeler directement l'outil créé depuis SSIS.
    Alexandre Chemla - Consultant MS BI chez Masao

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    merci de vos réponses
    pour le traitement en C#, je développe tous le traitement dans projet C# ensuite je génére un executable et à la fin j'appel l'exe à partir d'SSIS avec execute process task. c'est bien ca?

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Citation Envoyé par zer_hich Voir le message
    merci de vos réponses
    pour le traitement en C#, je développe tous le traitement dans projet C# ensuite je génére un executable et à la fin j'appel l'exe à partir d'SSIS avec execute process task. c'est bien ca?
    je n'ai encore jamais utilisé de C# en SSIS, je sais que ça existe et que ça fonctionne très bien, mais les seul exécutables que j'ai utilisé sont des batchs
    Je ne sais pas s'il est possible de passer le flux à l'exe C# ou s'il faut passer par une table ou des fichiers pour stocker les données.
    Alexandre Chemla - Consultant MS BI chez Masao

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    j'ai testé un petit exe qui modifie une donné dans une table sql server et ca marche sous ssis

Discussions similaires

  1. Importer des données à partir d'un fichier excel fermé
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/06/2019, 10h54
  2. Réponses: 9
    Dernier message: 19/03/2015, 16h10
  3. Récupérer des données à partir d'un fichier EXCEL
    Par cati_78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/04/2009, 20h21
  4. Réponses: 1
    Dernier message: 15/09/2008, 10h21
  5. Réponses: 3
    Dernier message: 17/06/2008, 17h05

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