SQL - Importar excel

 
Vista:

Importar excel

Publicado por Carolina (26 intervenciones) el 20/07/2007 22:49:04
Hola, trabajo con sl 2005 y necesito importar archivos excel en forma masiva y los archivos tienen nombre variable pero la misma definicion de filas. He estado leyendo y creo entender que no se puede utilizar bulk insert.
Si alguien me puede orientar, se lo agradeceria bastante

Salu2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Importar excel

Publicado por ngenao (32 intervenciones) el 23/07/2007 22:43:06
Es pasar de excel a una tabla...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por Isaias (5072 intervenciones) el 23/07/2007 22:56:21
Bueno, abrir una hoja de Excel desde SQL SERVER, puedes hacerlo con OPENROWSET, ahora bien, para sacar la lista de los archivos que tienes en una ruta, puedes utilizar XP_CMDSHEL en conjunto con DIR de OS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por carolina (26 intervenciones) el 23/07/2007 23:59:08
Hola gracias por contestar pero la verdad no entendi muy bien lo que me dices... al utilizar XP_CMDSHEL saco la lista pero como los llamo?? igual que un archivo plano???

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por Isaias (5072 intervenciones) el 24/07/2007 02:04:10
Caro

Supongamos que tienes 25 archivos en tu ruta o path de tipo excel para procesarse.

1.- Como saber los nombres de dichos archivos?

EXECUTE master..XP_CMDSHELL 'DIR C:\TURUTA\*.XLS'

2.- ¿A donde almaceno dichos nombres?, crea un store

DECLARE @cFileSpec varchar(255),
@cDirSpec varchar(255
SET @cFileSpec = '*.XLS'
SET @cDirSpec varchar = 'C:\TURUTA\'

CREATE TABLE #DirList (SeqNo INT NOT NULL IDENTITY,
LineText VARCHAR(255) NULL)

SET @iFileCount = 0

IF IsNull(RTrim(@cFileSpec),'') = ''
SET @cFileSpec = 'V*.TXT'

SET @cDirSpec = RTrim(@cDirSpec)
IF @cDirSpec != '' and Right(@cDirSpec,1) != '\'
SET @cDirSpec = @cDirSpec + '\'

SET @cCmdStr = 'dir ' + @cDirSpec + @cFileSpec

INSERT #DirList (LineText)
EXEC master..xp_cmdshell @cCmdStr

DELETE FROM #DirList WHERE SubString(LineText,1,1) = ' ' OR LineText IS NULL

UPDATE #DirList SET LineText = SubString(LineText,40,255)

-- Si no hay registros, termino la ejecucion
IF (SELECT TOP 1 LineText FROM #DirList) = ''
RETURN(0)

-----------------------------
Aqui si hay archivos, es tan facil como que abras su contenido con:

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\TURUTA\TuArchivo.xls";User ID=Admin;Password=;Extended
properties=Excel 5.0')...xactions

Claro que aqui, deberias enviar TURUTA y TuArchivo.xls, como parametros.

¿Quedo un poco mas claro?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por Isaias (5072 intervenciones) el 24/07/2007 02:05:26
Una vez que lo proceses (subas a tu base), deberias o BORRARLO, COPIARLO A OTRO DESTINO, o RENOBRARLO al archivo Excel, ¿Cierto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por Carolina (26 intervenciones) el 24/07/2007 14:44:01
Ok, se entiende super bien...muchas gracias....

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar excel

Publicado por Isaias (5072 intervenciones) el 25/07/2007 20:05:07
Perfecto !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar