Java应用程序和Microsoft应用程序之间通过Jacob同步

在我的Java应用程序中,我使用Jacob库连接到Microsoft Excel。 一切都很好,但我不知道如何使用雅各布库发生Excel页面中的任何更改时,可以捕获com事件。 例如,在我的项目中,连接数据库需要表值,并将这些值复制到Excel页面的单元格中。 每当单元格值更改时,表格值也会更改。 这就是我想要Jacob和Microsoft Excel应用程序之间的同步。

不要使用Java来实现这一点。 看到这个问题: Excel OnChange事件 ,重点是这个答案 。 你应该直接从Excel访问你的数据库。 这很容易使用ADO 。 这个w3schools的ADO教程看起来也很好。

如果任务太复杂,无法直接从Excel执行,则可以考虑在数据库中放置一个小标记(例如在数据库中),以便从其他应用程序(可能是java应用程序)处理此标记。 难点在于访问数据库的证书必须在Excel工作表中硬编码。 但是,您可以创build具有较窄数据库权限的单独数据库用户。

看到您的评论我也尝试使用Excel的更改事件来检测其他用户所做的更改。 我在Excel 2003上的经验表明,这只适用于本地。 也就是说,事件仅针对做出更改的用户而被解雇。 如果许多用户打开工作表,则不会收到由其他用户所做更改而导致的更改事件。 所以你的方法是不可行的。 您可以使用Excel 2010对其进行testing,但我的印象是这些事件通常只能在本地进行。 在网上找不到任何关于它的东西。 只有这篇一般文章: 跟踪共享工作簿中的更改 。