从Excel工作表将数据写回SQL

时间:2009-04-15 06:51:26

标签: sql excel

我知道可以将数据从SQL数据库中获取到Excel工作表中,但我正在寻找一种方法来编辑excel中的数据,并在编辑之后将其写回SQL数据库

看来这不是excel中的一个功能,谷歌没有提供太多有用的功能。

6 个答案:

答案 0 :(得分:6)

如果您想让Excel文件完成所有工作(从DB检索;操作;更新数据库),那么您可以查看ActiveX数据对象(ADO)。您可以在以下位置获得概述:

http://msdn.microsoft.com/en-us/library/ms680928(VS.85).aspx

答案 1 :(得分:5)

您需要SQL Management Studio中的“导入/导出”向导。根据您使用的SQL Server版本,打开SSMS(连接到您想要的SQL实例),右键单击要导入的数据库,然后选择Tasks ..“Import Data”。

在向导中,单击“下一步”(通过介绍屏幕),然后从“数据源”下拉列表中选择“Microsoft Excel”。您可以指定Excel电子表格的路径和文件名,是否有列标题。然后按“下一步”。只需按照向导,它将设置目标(可以是SQL Server或其他目的地)等。

SQL Server Books Online以及MSDN中的更多(演练)提供了此流程的帮助。

如果您需要可部署/更强大(或更少向导驱动)的东西,那么您需要查看SQL Server Integration Services(更多“企业”和安全意识方法)。对于你想要完成的事情来说,这可能有点过头了。

答案 2 :(得分:3)

有一个名为“MySQL for Excel”的新Excel插件:http://www.mysql.com/why-mysql/windows/

答案 3 :(得分:1)

您可以尝试使用这些加载项:

www.QueryCell.com(我创建了这个) www.SQLDrill.com www.Excel-DB.net

答案 4 :(得分:0)

您可以使用OPENROWSET函数从T-SQL脚本处理Excel数据。示例用法是:

UPDATE OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; DATABASE = c:\ MySpreadsheet.xls', '从MyTable中选择*)     SET Field1 ='Value1'WHERField2 ='Value2'

答案 5 :(得分:0)

我只需要这样做,这个线程已经安静了很长时间,所以我认为提供最近的数据点可能很有用。

在我的应用程序中,漫游销售人员使用Excel工作簿的副本,该工作簿通过贷款申请跟踪潜在客户的进度。应用程序的当前阶段需要自动保存回远程SQL数据库,以便我们可以对其进行报告。

拒绝从Excel更新数据库的方法:

SSIS OpenRowSet 都是允许SQL Server从Excel中提取数据的方法,并且当Excel工作簿位于其中时不能很好地工作用户计算机上的未定义位置,当然,当工作簿当前在Excel中打开时,当然不会。

ADO 现在,如果不是实际上已经弃用,那么看起来很长。此外,我希望解决方案在用户可能无法连接到互联网的情况下保持稳健。

我还考虑在目标服务器上运行 Web API 。 Excel工作簿中的宏连接到Web API以传输数据。但是,允许Web API与外部世界通信有时会很痛苦。此外,面对暂时失去互联网连接而使其健壮的代码是痛苦的。

采用的解决方案:

我打算采用的解决方案是低技术:电子邮件。 Excel将数据通过电子邮件发送到Exchange服务器上托管的地址。公司中的每个人都安装了Outlook,因此通过以编程方式将电子邮件添加到Outlook发件箱中来发送电子邮件。 Outlook很好地处理用户离线时的情况。在服务器端,由任务计划程序定期启动的自定义C#可执行文件轮询收件箱并处理电子邮件。