如何将 Excel 电子表格导入 SQL Server?

Posted

技术标签:

【中文标题】如何将 Excel 电子表格导入 SQL Server?【英文标题】:How do I import an excel spreadsheet into SQL Server? 【发布时间】:2010-10-03 03:01:02 【问题描述】:

我需要将 Excel 电子表格导入 SQL Server 2005。我需要采取哪些步骤来完成此操作?

【问题讨论】:

您使用的是什么版本的 SQL Server? 【参考方案1】:

“数据转换服务”向导是您的朋友。

此处的说明假设 SQL Server 2000

打开 SQL Server 企业管理器 右键单击相应的服务器 选择导入数据 运行向导。 在第一个屏幕上单击下一步 选择“Microsoft Excel”作为您的数据源 输入 XLS 文件的路径并点击下一步。 输入数据库的连接详细信息,然后单击下一步。

根据您要对数据执行的操作,您有几个新选项。对于一次性工作,我通常发现最简单的方法是导入所有 Excel 数据,然后在 SQL Server 中对其进行编辑,但如果您要对多个文件重复此操作,您可能需要制作一个非常性感的导入脚本。

如果要再次运行它,可以使用向导保存 DTS 包,然后在企业管理器的“数据转换服务”部分进行编辑。这是了解 DTS 工作原理的好方法。

【讨论】:

完美!这是正确的答案。 DTS 的好处是您不必在导入数据之前预先创建表。不错。【参考方案2】:

您也可以使用 OPENROWSET 来做到这一点

INSERT INTO SOMETABLE SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\testing.xls','SELECT * FROM [Sheet1$]')

【讨论】:

【参考方案3】:

另一种快速且(非常)肮脏的解决方案是将公式添加到 Excel 工作表,如下所示:

="INSERT INTO table1(col1, col2, col3) SELECT " & A1 & ", '" & B1 & "', '" & C1 & "'"

复制下来 (CTRL+D) 就可以了。

【讨论】:

【参考方案4】:

如果您的电子表格没有很好地组织成一对一的 SQL 表导入(例如,为了便于阅读而设置了子标题、空格、累加器列等),那么有现成的工具你可以用来做这种事情。有关示例,请参阅Khronos Excel Pump。免责声明 - 我为销售此产品的公司工作。它非常可配置,因此您可以将电子表格保持在人工布局中,并且仍然可以可靠地导入结构化 SQL 表,包括用标识字段值替换文本值或将宽网格旋转到窄表等。

【讨论】:

以上是关于如何将 Excel 电子表格导入 SQL Server?的主要内容,如果未能解决你的问题,请参考以下文章

将 Excel 电子表格数据导入现有的 sql 表?

将 Excel 电子表格列导入 SQL Server 数据库

使用java将excel电子表格数据导入MYSQL数据库

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

在 sql server 2000 中导入 Excel 电子表格

通过MVC应用程序将电子表格数据导入SQL数据库,有没有办法在导入期间为不在电子表格上的列分配值?