首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不同Excel表格自动导入到TSQL表中

从不同Excel表格自动导入到TSQL表中
EN

Stack Overflow用户
提问于 2016-11-24 05:59:47
回答 2查看 59关注 0票数 1

我正在尝试从12个不同的文件自动导入数据,每个文件有6-10张工作表。有没有一个过程,通过这个过程,数据可以被“选定的工作表”从每个文件中自动提取并加载到单个文件(或SQL表)中。

示例:

代码语言:javascript
复制
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")

输出:

代码语言:javascript
复制
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

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 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步:启用即席分布式查询

代码语言:javascript
复制
       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:运行查询

代码语言:javascript
复制
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:向导如果这是一次性过程,则可以使用向导

票数 4
EN

Stack Overflow用户

发布于 2016-12-06 06:21:02

尝试Juan建议的方法,但要这样做:

代码语言:javascript
复制
SELECT * FROM [SheetName$A1:B2]

这对你有效吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40774823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档