将多个Excel文件中的Excel数据加载到Sql Server表中

时间:2013-12-09 16:46:27

标签: excel sql-server-2008 ssis

我正在尝试将具有多个工作表的多个excel文件中的数据加载到不同的sq服务器表中。目前我创建了一个带有Foreach循环容器任务的SSIS包,可以将多个文件中的数据加载到1个表中,我有多个excel文件,其中17个页面上有不同的数据。我需要将它加载到17个不同的表,因为每个表包含不同的列。请帮我提出任何建议。

2 个答案:

答案 0 :(得分:1)

您想将17个不同的Excel文件加载到17个不同的表中吗? (如在不同的领域,不同的数据类型)那么你需要17个数据流。忘记For Next循环。

如果Excel文件非常相似并且它们进入一个表格,则可能值得使用For Each和一些脚本。

答案 1 :(得分:0)

此查询使用bulk insert将文件存储在#temptable中 然后将此临时表中的内容插入到数据库中所需的表中,但导入的文件为.csv。在执行此操作之前,您可以将excel文件保存为csv

 CREATE TABLE #temptable (col1,col2,col3)
 BULK INSERT #temptable from 'C:\yourfilelocation\yourfile.csv' 
 WITH 
    (
    FIRSTROW = 2, 
    fieldterminator = ',', 
    rowterminator = '0x0A' 
    ) `


INSERT INTO yourTableInDataBase (col1,col2,col3)
SELECT (col1,col2,col3)
FROM #temptable

要自动执行此操作,您可以将上述查询放在存储过程中并使用batch调用存储过程。编辑此代码并将其放在textfile内并保存为cmd

set MYDB= yourDBname
set MYUSER=youruser
set MYPASSWORD=yourpassword
set MYSERVER=yourservername
sqlcmd -S %MYSERVER% -d %MYDB% -U %MYUSER% -P %MYPASSWORD% -h -1 -s "," -W -Q "exec yourstoredprocedure"