我正在尝试从12个不同的文件自动导入数据,每个文件有6-10张工作表。有没有一个过程,通过这个过程,数据可以被“选定的工作表”从每个文件中自动提取并加载到单个文件(或SQL表)中。
示例:
File A with Columns "Name" Column "Amount".
File A has total of 4 sheets (2 sheets named "ABC Trend", "DEF Trend")
File B - 6 sheets (2 sheets named "XXX Trend", "DEF Trend")输出:
import into Table C (or File C - One Sheet) with 'Trend' data
"Name", "Amount", "FromFile", "FromSheet"
Jo, 56.3 , A , ABC Trend
Mary, 16.3 , A , ABC Trend
Dave, 26.3 , A , ABC Trend
Jim, 26.3 , A , DEF Trend
Mary, 16.3 , A , DEF Trend
Dave, 26.3 , A , DEF Trend
Shu, 16.3 , B , XXX Trend
Marie, 16.3 , B , XXX Trend
Tom, 26.3 , B , XXX Trend
Jack, 26.3 , B , DEF Trend
Ma, 16.3 , B , DEF Trend
Doe, 26.3 , B , DEF Trend
*Ideal would be to load into a SQL table任何帮助都将不胜感激。
发布于 2016-11-24 19:46:56
选项1: SSIS
如果您尝试执行每天/每周/每月运行的定期流程,我建议您使用Integration Services SSIS
这是一个很好的教程:https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server-10-steps-to-follow/
您可以使用SQL代理运行此作业。
OLEDB选项2: connection
步骤1:如果未安装https://www.microsoft.com/en-us/download/details.aspx?id=23734,请下载“2007Office System驱动程序:数据连接组件”
第2步:启用即席分布式查询
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO步骤3:运行查询
SELECT exl.name
INTO #myExcelData
FROM OPENROWSET ('Microsoft.Ace.OLEDB.12.0'
,'Excel 12.0; Database=C:\Projects\StackOverflow\A.xlsx; Extended Properties=''EXCEL 12.0;HDR=NO;IMEX=1'
,'SELECT * FROM [Sheet1$]') AS exl选项3:向导如果这是一次性过程,则可以使用向导
发布于 2016-12-06 06:21:02
尝试Juan建议的方法,但要这样做:
SELECT * FROM [SheetName$A1:B2]这对你有效吗?
https://stackoverflow.com/questions/40774823
复制相似问题