在我的 java 应用程序中,我使用 Jacob 库连接到 Microsoft Excel。一切都很好,但我不知道如何使用 Jacob 库在 Excel 页面发生任何更改时捕获 com 事件。例如,在我的项目中,我连接数据库获取表值并将这些值复制到 Excel 页面的单元格中。每当更改单元格值时,表值也会更改。那就是我想要 Jacob 的 java 和 Microsoft Excel 应用程序之间的同步。
问问题
807 次
1 回答
1
不要使用 Java 来实现这一点。请参阅此问题:Excel OnChange 事件,重点是此答案。您应该使用 com 直接从 Excel 访问您的数据库。使用ADO很容易。w3schools 的这个ADO 教程看起来也不错。
如果任务太复杂而无法直接从 Excel 执行,您可能会考虑在数据更改的某个地方(例如,在数据库中)放置一个小标记,并从其他应用程序(可能是 java 应用程序)处理此标记。困难在于访问数据库的凭据必须在 Excel 表中进行硬编码。但是您可以创建一个具有狭窄数据库权限的单独数据库用户。
看到您的评论,我还尝试使用Excel 的Change事件来检测其他用户所做的更改。我在 Excel 2003 上的经验表明,这只适用于本地。也就是说,该事件仅针对进行更改的用户触发。如果许多用户打开了工作表,他们不会收到由其他用户的更改引起的更改事件。所以你的方法是不可行的。您可以使用 Excel 2010 对其进行测试,但我的印象是这些事件通常只在本地工作。在网上找不到任何关于它的信息。仅此一般文章:跟踪共享工作簿中的更改。
于 2012-10-11T20:14:07.850 回答