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 :
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 :
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+
Partager