将 Excel 工作表保存到 SQL 中

Posted

技术标签:

【中文标题】将 Excel 工作表保存到 SQL 中【英文标题】:Save Excel sheet into SQL 【发布时间】:2010-06-30 06:59:02 【问题描述】:

Excel 在“数据”选项卡中有一个“获取外部数据”功能区栏,我们可以在其中选择从 SQL 数据库中导入表。这个过程对我来说效果很好。但我的问题是,有没有办法将这些数据保存回 SQL 中? Excel 是否提供了一些 API 来促进此类函数的编码,而无需解析所有内容并从头开始?

谢谢

【问题讨论】:

【参考方案1】:

它可能不是您正在寻找的解决方案,但我很久以前发布了一些 VBA 代码,它将在 Excel 中获取一个范围并将其转换为 XML 并构建 SQL 以将该数据放入 SQL 中的临时表中服务器。如果您有兴趣,这里是link。

【讨论】:

【参考方案2】:

最简单的方法是使用 SSMS 中的导入功能。您可以选择要使用的工作表、自定义列映射等。如果创建一个 SSIS,您可以在需要时进一步操作。但是,这种方法是从 Sql 中提取的,而不是从 Excel 中提取的,如果您想这样做,则必须编写一些 VBA 代码来为您完成。

【讨论】:

如果每次更改的数据很少,我是否可以在 VBA 中编写某种连接器,以便在 SQL 表中更新每个更改,而不是获取整个 Excel 表并在 SQL 中重写所有内容? 您必须编写所有逻辑代码,检测单元格是否脏,然后运行相关更新。代码不会太难,但有很多事情需要考虑——正确的数据库、表、关键是什么、你如何检测到发生了什么变化——..***.com/questions/2295225/…【参考方案3】:

非编程方式:

http://office.microsoft.com/en-us/excel-help/connect-to-import-sql-server-data-HA010217956.aspx

以编程方式——我只能想到 MSSQL 中的 OpenRowSet 函数:

http://www.mssqltips.com/tip.asp?tip=1540

http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx

Using openrowset to read an Excel file into a temp table; how do I reference that table?

【讨论】:

以上是关于将 Excel 工作表保存到 SQL 中的主要内容,如果未能解决你的问题,请参考以下文章

将列表框中选定的 Excel 工作表保存为新的工作簿/Excel 文件

将同一工作簿中的多个 Excel 工作表复合到一张工作表中

如何将EXCEl中多张Sheet工作表转换成一个PDF

将多个工作表导入到 R 中的多个数据框中

如何将EXCEl中多张Sheet工作表转换成一个PDF

在excel中如何将第一个工作表中的数据求和汇总到另一个表中