如何将Excel电子表格中的数据导出到Sql Server 2008表中

46

我想从一个Excel文件中导入数据 - 假设Excel2003 / .xls - 到Sql Server 2008。

尝试添加到JET OLE DB Access驱动程序的链接服务器,但在64位机器上失败了。但是当我尝试在实验时删除链接服务器时,出现另一个错误,表明链接服务器已经/仍然存在!

我也尝试将Excel驱动程序更改为32位(使用regedit工具),但不确定是否有所作为,仍然出现相同的错误!

一些更多的细节: 假设Excel文件中的Table1有5列。 我想将其映射到Database.dbo.Table1,再次有5个列,但表中的列名不同。 是否有办法进行这样的导入?

3个回答

92
从SQL Server Management Studio打开对象资源管理器,进入要加载数据的数据库,右键单击,然后选择“任务”>“导入数据”。

这将打开导入数据向导,通常用于从Excel导入数据。您可以选择一个Excel文件,选择要导入数据的工作表,选择要存储到哪个表中以及列是什么。非常灵活。

您可以将其作为一次性操作运行,也可以将其存储为SQL Server Integration Services(SSIS)包并将其保存到文件系统或SQL Server本身中,并反复执行它(甚至可以使用SQL Agent在给定时间运行)。

更新:是的,是的,是的,您可以做所有那些您一直在问的事情——您甚至尝试过运行该向导吗?

好的,步骤来了:

步骤1:选择您的Excel源

enter image description here

步骤2:选择你的SQL Server目标数据库

enter image description here

第三步:选择您的源工作表(来自Excel)和目标SQL Server数据库中的表格;请查看“编辑映射”按钮!

enter image description here

步骤4:检查(并在需要时更改)Excel列与SQL Server表中列的映射:

enter image description here

步骤 5:如果您想以后使用它,请将您的 SSIS 包保存到 SQL Server:

enter image description here

第六步: - 成功了!这是在一个64位的机器上,非常顺利 - 就这样做吧!!


如何通过添加脚本来实现,我想定期将数据导入3个表中?是否有一种方法可以创建格式文件或其他东西来直接编写查询/脚本以获取数据?我们可以在SQL Server 2005中完成此操作,但我们能否直接在64位机器上执行此操作? - Loser Coder
@Amy:您需要手动完成一次向导步骤,以设置所有内容。完成后,您可以将步骤保存为 SSIS 包到 SQL Server 中,并通过在 SQL Agent 中进行调度,在任何给定时间执行它。适用于任何机器-32位或64位-没有问题。 - marc_s
1
首先感谢您的帮助!我正在尝试为Excel数据创建列映射到SQL表。假设Excel表1有col1、col2和col3。而SQL表1有col1、col2a和col3a。您能想到一种保持当前信息并完成此操作的方法吗? - Loser Coder
7
你应该因这个回答而获得奖章! - Malachi
这里提出的方法:http://www.excel-sql-server.com/excel-sql-server-import-export-using-excel-add-ins.htm 对于大多数人来说应该比提出的解决方案更好、更简单。 - ihightower
显示剩余2条评论

2

有几种工具可以将Excel导入SQL Server。

我使用DbTransfer (http://www.dbtransfer.com/Products/DbTransfer)来完成这项任务。 它主要专注于在数据库和Excel、XML等之间传输数据......

我以前尝试过openrowset方法和SQL Server导入/导出助手。 但与使用其中一种可用的专用工具相比,我发现这些方法不必要地复杂且容易出错。


1
在 SQL Server 2016 中,向导是一个单独的应用程序。(重要提示:Excel 向导仅在向导的32位版本中可用!)请使用MSDN页面进行指导。
On the Start menu, point to All Programs, point toMicrosoft SQL Server , and then click Import and Export Data.
—or—
In SQL Server Data Tools (SSDT), right-click the SSIS Packages folder, and then click SSIS Import and Export Wizard.
—or—
In SQL Server Data Tools (SSDT), on the Project menu, click SSIS Import and Export Wizard.
—or—
In SQL Server Management Studio, connect to the Database Engine server type, expand Databases, right-click a database, point to Tasks, and then click Import Data or Export data.
—or—
In a command prompt window, run DTSWizard.exe, located in C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

之后基本上就与 @marc_s 的回答相同(可能在用户界面上有细微差异)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接