Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 12h26   #1
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Par défaut importer des données Excel mal agencées

Bonjour,

de nombreux posts montrent comment importer des données d'une feuille Excel vers une table SQL server via OPENROWSET.

Code :
1
2
3
4
SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 5.0;Database=c:\nomFichier.xls;HDR=YES;IMEX=1', 
'SELECT * FROM [Feuil1$]')
Mon soucis est que la feuille de données qui doit être chargée ne me permet pas de faire un simple SELECT * FROM et je pensais (naïvement) créer d'abord un objet de type tableau et l'envoyer dans la table SQL.

Je ne trouve pas d'exemple pour cela. quelqu'un pourrait-il m'aider ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 12h42   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Citation:
Mon soucis est que la feuille de données qui doit être chargée ne me permet pas de faire un simple SELECT * FROM
Vous devez arriver à quoi dans ce cas ? Pouvez-vous préciser ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h00   #3
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
Perso je comprend pas non plus votre demande.
Est ce que vous pouvez donner le message d'erreur ?

Pour quelle raison avez vous Excel 5.0 dans votre commande passee dans le post ?
D'apres Wikipedia, Excel 5.0 date de 1993. Je ne sais pas si la retro-compatibilite est assuree jusque la...
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h13   #4
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
pardon je me suis mal exprimé.

le code n'était que l'illustration des choses que j'avais pu trouver.
C'est une feuille Excel dans laquelle les utilisateurs saisissent leurs valeurs.
Je ne pense pas que le code me soit utile car la plage de données à importer commence en A12 et finit en K1500 typiquement (les 11 premières lignes ne sont pas à importer). C'est pour cela qu'un simple SELECT * FROM ne semble pas me convenir.

D'où l'idée de charger les données dans un tableau.

Mais à la rigueur si vous avez une autre idée pour structurer les données avant de les importer, je suis preneur, la feuille Excel en elle-même n'est pas réellement modifiable.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h28   #5
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
Vous avez regarde du cote des named range voir de specifier les differents parametres de positionnement de vos donnees dans la sheet ?

Citation:
Spécification d'une plage nommée

Pour spécifier une plage de cellules nommée comme source d'enregistrements, utilisez simplement le nom défini de la plage. Par exemple :
strQuery = "SELECT * FROM MyRange"


Spécification d'une plage non nommée

Pour spécifier une plage de cellules non nommée comme source d'enregistrements, ajoutez la notation de ligne/colonne Excel standard à la fin du nom de la feuille entre crochets. Par exemple :
strQuery = "SELECT * FROM [Sheet1$A1:B10]"

Source:
http://support.microsoft.com/kb/257819
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 16h48   #6
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
ok je vais voir. Mais peut-on imaginer un INSERT INTO à partir des données du tableau dans la table ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 17h21   #7
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
A partir du moment ou vous arrivez a lire les donnees, je ne vois pas ce qui vous empecherait de les inserer dans une table.
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web