Vous êtes sur la page 1sur 12

SQL Server 2005 Integration Services : Import/export Excel

par Fleur-Anne BLAIN

Date de publication : 29 avril 2008 Dernire mise jour : 29 avril 2008

Ce tutoriel a pour objectif de prsenter la cration de packages SSIS qui permettront soit d'importer des donnes d'un fichier Excel vers une base de donnes SQL Server 2005, soit d'exporter des donnes de cette mme base vers un fichier excel. La transformation de donnes sera aussi ncessaire.

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Introduction...................................................................................................................................................................3 I - Prsentation des exemples.....................................................................................................................................3 I-A - Import de nos donnes articles..................................................................................................................... 3 I-B - Export de nos donnes Employs.................................................................................................................4 II - Import Excel vers SQL Server 2005......................................................................................................................4 II-A - Cration et configuration de notre source de donnes : Excel Source........................................................ 5 II-B - Transformation des donnes........................................................................................................................ 7 II-C - Destination des donnes : la table Articles sur SQL Server 2005............................................................... 9 III - Export SQL Server 2005 vers Excel.................................................................................................................. 11 III-A - Source SQL Server 2005.......................................................................................................................... 11 III-B - Destination : Fichier Excel Employs........................................................................................................ 11 Conclusion..................................................................................................................................................................12 Liens utiles................................................................................................................................................................. 12 Remerciements.......................................................................................................................................................... 12

-2Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Introduction
Excel reste un outil des plus utiliss en entreprises y compris pour l'import/export de donnes. C'est pourquoi il est intressant d'en dcouvrir le fonctionnement avec SQL Server Integration Services : SSIS. Nous nous baserons sur deux exemples simples. Le premier concerne un fichier Excel d'articles importer dans une base SQL Server 2005 et le second sur une table employs exporter vers un fichier Excel. Dans ce tutoriel, nous aborderons la cration de projet BI avec SQL Server 2005, la cration et configuration des sources de donnes, quelques transformations de bases et la cration et configuration des destinations de donnes. Dans un premier temps, nous prsenterons nos deux exemples qui nous servirons pour ce tutoriel. Puis, nous aborderons l'exemple d'import de donnes d'un fichier Excel vers notre base de donnes SQL Server 2005 et nous terminerons par l'exemple d'export de donnes avec les mmes outils.

I - Prsentation des exemples


Pr-requis : D'un point de vue logiciel, vous devez disposer de Microsoft Visual Studio 2005 et Microsoft SQL Server 2005 au minimum (en dehors des versions Express qui ne prennent pas en charge SSIS). D'un point de vue connaissance, si vous n'tes pas familiariss avec SSIS, je vous conseille de lire ce tutoriel : Prsentation d'SQL Server Intgration Services : SSIS, car nous ne reviendrons pas sur toutes les bases de l'outil.

I-A - Import de nos donnes articles


Avant d'importer des donnes, il faut bien que notre fichier Excel en contienne. Ci-dessous, notre petit exemple d'articles que nous allons importer :

De plus, avant d'importer quoi que ce soit, il nous faut crer la table qui accueillera nos informations. La base de donnes utilise est Microsoft SQL Server 2005. Script table Article
USE [Test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Article]( [Id_Article] [int] NOT NULL, [Nom_Article] [nvarchar](50) NOT NULL, [Quantite_Article] [int] NULL, CONSTRAINT [PK_Article] PRIMARY KEY CLUSTERED ( [Id_Article] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS

= ON,

-3Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Script table Article


) ON [PRIMARY]

Pour rsumer notre premier flux de donnes :

I-B - Export de nos donnes Employs


Dans cet exemple, nous partons de la base de donnes pour en exporter les donnes vers un fichier Excel. Dans un premier temps, nous creons notre table, dans laquelle nous insrons nos donnes comme suit : Script table employs
USE [Test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Employe]( [UserID] [int] IDENTITY(1,1) NOT NULL, [Nom] [nvarchar](50) NOT NULL, [Prenom] [nvarchar](50) NULL, [Sexe] [nvarchar](1) NULL, [Fonction] [nvarchar](50) NULL, CONSTRAINT [PK_Usr] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS

= ON,

Pour rsumer notre second flux de donnes :

II - Import Excel vers SQL Server 2005


Aprs avoir lanc Microsoft Visual Studio, nous crons un nouveau projet de type Integration Services. Cela nous donnera accs toute la fameuse boite outils SSIS. Nous allons developper cette partie par tape : cration et configuration de la source de donnes, transformation, et enfin cration et configuration de la destination.

-4Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

II-A - Cration et configuration de notre source de donnes : Excel Source


Dans un premier temps, il nous faut spcifier quel type de flux de contrle nous allons utiliser. Nous choisissons tche de flux de donnes comme suit :

Ensuite, nous passons l'onglet flux de donnes. Pour notre import, la source de donnes est un fichier Excel. Donc nous choisissons bien videment la source de donnes Excel.

Passons a la configuration de notre source de donnes. Nous double cliquons sur notre composant source.

-5Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Notons que la version d'Excel est maximum 2003. Une version d'Office 2007 est rserve SQL Server 2008. Concernant le fichier Excel, nous pouvons voir qu'il n'y a qu'une case cocher ou non si la premire ligne du fichier importer est une entte. Nous avons donc slectionn notre fichier Excel importer, laiss la case coche car nous disposons des titres de colonnes dans notre fichier, nous choisissons la feuille 1 (sheet1$). Afin de visualiser si notre connexion est valide, nous pouvons prvisualiser le contenu du fichier. S'il y a en effet quelque chose dans la prvisualisation (comme suit) c'est dj bon signe. De plus, au niveau du manager de connexion, une connexion s'est ajoute pour notre source de donnes Excel. S'il y a des modifications de chemins ou autres, il nous suffira d'en modifier les proprits.

Par la suite, nous passons l'onglet colonnes. C'est ici que nous choisissons nos colonnes importer. Dans notre cas, nous importons tout :

-6Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Remarque : Parfois, la clef d'un tuple dans une base de donnes est gnre automatiquement. Il est donc plus judicieux dans ces cas l, de ne pas importer la colonne identifiant car cela causerait des conflits l'import.

II-B - Transformation des donnes


Nous sommes obligs afin de contrler l'intgrit des donnes importer, de passer par un intermdiaire de trasformation. Nous outiliserons donc le composant conversion de donnes, qui permet surtout de vrifier les types des donnes. En effet, ce composant effectue un mapping afin que le type des donnes insrer soit identique au type de donnes dclar dans notre table.

-7Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Nous relions donc nos deux composants et double cliquons sur notre composant conversion de donnes afin de le configurer. Nous slectionnons donc nos trois colonnes et nous choisissons les types de correspondances par rapport ceux de notre table Articles. Les correspondances sont donnes en cas d'erreur pas SQL Server qui fait lui mme ses suggestions.

-8Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

II-C - Destination des donnes : la table Articles sur SQL Server 2005
Nous slectionnons notre destination OLE DB. Puis, nous relions notre composant de conversion de donnes vers notre destination, car c'est un flux de donnes que nous manipulons. Nous ouvrons notre destination afin de la paramtrer.

Pour le paramtrage de notre destination, nous devons spcifier une base de donnes, la chaine de connexion, la table destination dans un premier temps.

Comme chaque type de connexion, une connexion notre base de donnes s'est cre dans notre manager de connexions.

-9Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

A niveau de l'onglet mapping, nous choisissons les colonnes commenant par copy of. En effet, ce sont les colonnes en sorties de transformations, et donc avec le bon type de donnes que nous allons insrer. Afin de lancer l'import, nous excutons le package (F5). Tout apparait vert, avec 8 lignes (autant que dans notre fichier) insres :

Histoire de vrifier, nous pouvons constater aussi l'import au niveau base de donnes, dans notre table article :

- 10 Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

III - Export SQL Server 2005 vers Excel


Nous allons aborder la mme dmarche, de la source la transformation jusqu' notre destination de donnes. Cette fois-ci, nous utilisons notre exemple employs dcrit prcdemment.

III-A - Source SQL Server 2005


Nous reprennons les mmes tapes que prcdement, soit la cration d'un projet BI Integration Services, l'ajout d'une tche de flux de donnes au niveau flux de contrle. Nous ajoutons en source un composant source OLE DB auquel nous configurons notre base de donnes SQL Server en guise de source :

Nous gardons toutes les colonnes de notre table pour l'export Excel. Notre source de donnes t ajout notre manager de connexion.

III-B - Destination : Fichier Excel Employs


Nous n'appliquons pas de transformation dans ce cas l. Mais si l'on souhaite mettre tout en majuscule, ou bien modifier le format de date, etc. il est possible d'effetuer une transformation soit par composant soit par script entre la source et la destination. Nous poursuivons en ajoutant le composant destination Excel que nous ouvrons. Si l'on teste notre package, on constate que 6 lignes sont insres :

- 11 Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/

SQL Server 2005 Integration Services : Import/export Excel par Fleur-Anne BLAIN

Toujours pour vrifier nos dires, nous pouvons ouvrir notre fichier Employs pour constater l'export effectif :

Conclusion
Nous venons de manipuler l'import/export avec Excel et SSIS. Il est trs facile d'obtenir un rsultat sans dveloppement ou trs peu car beaucoup de possibilits de transformations sont incluses dans SSIS. Il est possible d'excuter localement ce genre de traitement de donnes ou de les automatiser avec SQL Server Agent. En gnral, ce type de traitement tant courant, tout est automatis. je vous laisse le soin d'observer, tester toute les possibilits non encore prsentes de SSIS.

Liens utiles
Prsentation d'SQL Server Integration Services : SSIS Automatisation de l'excution d'un package SSIS sur Microsoft SQL Server 2005 Forum Microsoft BI

Remerciements
Je remercie Adrien Artero pour ses corrections.

- 12 Copyright 2011 Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://fablain.developpez.com/tutoriel/import-export-ssis/