如何开发Excel插件以编辑Excel数据表中的外部数据?
Excel可以连接到外部数据源,但据我所知,它们是单向只读数据表。我想要做的是像excel的TFS插件。我相信还有更多这样的人。
对于那些不知道该插件的人: 安装后,TFS Excel插件将作为Excel中的新菜单进行。通过该菜单,您可以打开与TFS服务器的连接,并将您的(工作项)记录作为Excel表格带入Excel。您可以添加新行或编辑表中的数据。某些单元格具有附加到它们的下拉列表,但列表中仅显示有效选项,并且每个记录都有不同的选项。您可以编辑表中的行,然后可以将这些记录批量推送回服务器。
我不知道它是否有所作为,但我的数据源上的连接和更新操作将通过Web服务。
我想这需要一些认真的开发,但我在关于外部数据范围(仅用于阅读)的网页之间丢失。有人可以指导我进一步阅读这个主题吗?
答案 0 :(得分:0)
外部数据范围对您没有帮助,因此您可以停止阅读有关它们的网页。你说他们是只读的是正确的。您可以将它们用于操作的读取部分,但是您将围绕写入部分进行大量编码,您可能只是控制所有内容。您将无法获得外部数据范围的足够好处,以保证在这种情况下使用它们。在我看来,当然。
如果您正在读写数据库,则可能会使用ActiveX数据对象(ADO)。您将读入记录集,监视它的更改,然后根据需要使用UPDATE,DELETE和INSERT语句写回数据库。
如果您要通过API与数据库交互,如您所示,您可能会使用Microsoft XML库,特别是MSXML2.XMLHTTP对象。您可以使用GET,POST,PUT,DELETE以及您可以通过HTTP执行的任何其他操作。
如果您以前从未使用过XMLHTTP,那么您将有一点学习。但这并不是特别困难,而且有大量信息可供使用。在我看来,困难的部分是跟踪对Excel工作表所做的更改。如果允许用户使用Excel的本机编辑功能,则可能难以跟踪所做的更改。如果您进入完全锁定状态,用户必须使用您的菜单项删除记录,那么您必须问为什么使用Excel(仍然可能有充分的理由,但熟悉Excel的界面赢了不是其中之一,因为你将用它取而代之。)
也许你已经有了这个策略。但如果没有,请搜索“检测已删除的行与工作表更改事件”,以了解您将面临的一些挑战。如果你有前进的方向,那么请阅读XMLHTTP,你应该全部设置好。
答案 1 :(得分:0)
我不认为这是一个很好的解决方案,因为它很不稳定,但请查看这篇文章: http://www.toadworld.com/platforms/sql-server/w/wiki/10392.editing-an-sql-server-table-in-excel