【发布时间】:2009-04-15 06:51:25
【问题描述】:
我知道可以将 SQL 数据库中的数据写入 Excel 工作表,但我正在寻找一种方法可以在 excel 中编辑数据,并在编辑后将其写回 SQL 数据库.
看来这不是excel中的功能,google也没想出多大用处。
【问题讨论】:
我知道可以将 SQL 数据库中的数据写入 Excel 工作表,但我正在寻找一种方法可以在 excel 中编辑数据,并在编辑后将其写回 SQL 数据库.
看来这不是excel中的功能,google也没想出多大用处。
【问题讨论】:
如果您想让 Excel 文件完成所有工作(从 DB 检索;操作;更新 DB),那么您可以查看 ActiveX 数据对象 (ADO)。您可以在以下位置获得概览:
http://msdn.microsoft.com/en-us/library/ms680928(VS.85).aspx
【讨论】:
您需要 SQL Management Studio 中的导入/导出向导。根据您使用的 SQL Server 版本,打开 SSMS(连接到您想要的 SQL 实例),右键单击您要导入的数据库并选择任务..“导入数据”。
在向导中,单击下一步(经过介绍屏幕)并从数据源下拉列表中选择“Microsoft Excel”。您指定 Excel 电子表格的路径和文件名,无论您是否有列标题。然后按下一步。只需按照向导完成,它将设置目标(可以是 SQL Server 或其他目标)等。
SQL Server Books Online 提供了此过程的帮助,MSDN 提供了更多信息(演练)。
如果您需要一些可部署/更强大(或更少向导驱动)的东西,那么您需要查看 SQL Server 集成服务(以获得更“企业”和安全意识的方法)。不过,对于您想要完成的事情来说,这可能有点矫枉过正。
【讨论】:
有一个名为“MySQL for Excel”的新 Excel 插件:http://www.mysql.com/why-mysql/windows/
【讨论】:
我只是需要这样做,而这个线程已经安静了很长时间,所以我认为提供最近的数据点可能很有用。
在我的申请中,巡回销售人员使用 Excel 工作簿的副本来跟踪潜在客户通过贷款申请的进度。应用程序的当前阶段需要自动保存回远程 SQL 数据库,以便我们可以对其运行报告。
从 Excel 更新数据库的拒绝方法:
SSIS 和 OpenRowSet 都是允许 SQL Server 从 Excel 中提取数据的方法,当 Excel 工作簿位于未定义的位置时效果不佳用户计算机上的位置,当然不是当工作簿当前在 Excel 中打开时。
ADO 现在虽然没有被弃用,但看起来很长。此外,我希望解决方案在面对可能未连接到互联网的用户时保持稳健。
我还考虑在目标服务器上运行 Web API。 Excel 工作簿中的宏连接到 Web API 以传输数据。但是,有时允许 Web API 与外界对话会很痛苦。此外,在暂时失去 Internet 连接的情况下使其健壮的代码是痛苦的。
采用的解决方案:
我计划采用的解决方案是技术含量低的:电子邮件。 Excel 将数据通过电子邮件发送到 Exchange 服务器上托管的地址。公司中的每个人都安装了 Outlook,因此电子邮件是通过以编程方式将它们添加到 Outlook 发件箱来发送的。 Outlook 可以很好地处理用户离线时的情况。在服务器端,由任务计划程序定期启动的自定义 C# 可执行文件轮询收件箱并处理电子邮件。
【讨论】:
你可以试试这些插件:
www.QueryCell.com(我创建了这个) www.SQLDrill.com www.Excel-DB.net
【讨论】:
您可以使用 OPENROWSET 函数从 T-SQL 脚本操作 Excel 数据。示例用法是:
更新 OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;DATABASE=c:\MySpreadsheet.xls', '从 MyTable 中选择 *') SET Field1='Value1' WHERE Field2 = 'Value2'
【讨论】: