2013-04-15 55 views
1

如何开发Excel插件来编辑Excel数据表中的外部数据?在Excel中编辑外部数据表

Excel可以建立与外部数据源的连接,但据我所知可以看到它们是单向的只读数据表。我正在尝试做的就像TFS插件的Excel。我相信还有更多这样的人。

对于那些不知道该插件的人: 安装后,TFS Excel插件将作为Excel中的新菜单进行。通过该菜单,您可以打开与TFS服务器的连接,并将您的(工作项目)记录作为Excel表格放入Excel中。您可以添加新行或编辑表中的数据。一些单元格下拉列表附加到他们,但只有有效的选项显示在列表中,并且每个记录不同。您可以编辑表格中的行,并可以将这些记录批量推送回服务器。

我不知道它是否有所作为,但我的数据源上的连接和更新操作将通过Web服务。

我想这将需要一些严重的发展,但我失去了网页之间有关外部数据范围(这是只为阅读)。有人可以指导我进一步阅读有关该主题吗?

回答

0

外部数据范围不会帮助您,因此您可以停止阅读关于它们的网页。你是正确的,他们只读。您可以将它们用于您的操作的读取部分,但是您将在写入部分编写大量代码,您可能只是控制所有内容。你只是不会从外部数据范围中获得足够的好处来保证在这种情况下使用它们。在我看来,当然。

如果您正在读取和写入数据库,您可能会使用ActiveX数据对象(ADO)。您可以读入记录集,监视它的变化,然后根据需要使用UPDATE,DELETE和INSERT语句回写数据库。

如果您将通过API与数据库进行交互,您可能会使用Microsoft XML库,特别是MSXML2.XMLHTTP对象。您可以使用GET,POST,PUT,DELETE和其他任何可以通过HTTP执行的操作。

如果您之前从未使用过XMLHTTP,那么您将有一点学习要做。但这不是特别困难,并且有大量信息可用。在我看来,困难的部分是跟踪对Excel工作表所做的更改。如果您允许用户使用Excel的本机编辑功能,则可能难以跟踪所做的更改。如果你进入完全锁定状态,用户不得不说,用你的菜单项删除一条记录,那么你必须问你为什么使用Excel(可能还有很好的理由,但熟悉Excel的界面赢了不会成为他们中的一员,因为你会用你的替换它)。

也许你已经有了一个这样的策略。但是,如果没有,搜索“检测工作表更改事件删除行”,以了解您将面临的一些挑战。如果您有前进的方向,那么请阅读XMLHTTP并且您应该全部设置。

+0

什么开发一个Excel插件通过Visual Studio?连接到CRUD操作的任何数据源API都不会成为问题。如果我这样做,我能够响应Excel事件吗?例如,当用户尝试弹出单元格的下拉列表时。我能够动态地填充它吗? –

+0

无论您使用VS还是VBA,连接到API都不是问题,它正在跟踪更改。是的,您可以动态地填充放置在单元格上方的绘图层上的ActiveX组合框。数据验证下拉菜单有一些动态,但它们有限,所有事件都不响应DV。 –