我需要确定在Windows PC上安装了哪个版本的Microsoft Excel。我正在使用Apache POI,但无法找到一个简单的方法来做到这一点。确定使用Apache POI安装的Microsoft Excel版本?
任何人都知道Apache POI是否具有内置功能来执行此操作?任何想法如何使用Java代码做到这一点?
我需要确定在Windows PC上安装了哪个版本的Microsoft Excel。我正在使用Apache POI,但无法找到一个简单的方法来做到这一点。确定使用Apache POI安装的Microsoft Excel版本?
任何人都知道Apache POI是否具有内置功能来执行此操作?任何想法如何使用Java代码做到这一点?
好吧,刚刚发生在我身上的是旧的Microsoft Excel版本的文件扩展名为.xls,而新的版本有.xlsx。
我只能得到该文件的参考并获得文件扩展名......这很容易。
如果有人有更好的解决方案,请让我知道。
我真的,真的不认为POI具有这种功能,因为它明确写入跨平台工作。它只处理文档文件。
如果我面对这个任务,我会深入研究注册表(通过Windows API)关联.XLS
文件类型。那样会犯错,应该给你一个链接到最近安装完毕的Excel。不可靠,因为
但考虑到(通常情况下)适用的可执行文件的提示,然后你可以选择要检查的Excel中.EXE
文件头或者是一些在周围文件,以确定Excel的版本。
POI提供了一种在不使用任何Excel API的情况下编写Excel文档的机制。我怀疑它有检测安装版本的机制,因为它不依赖于安装的Excel版本。
根据类似于在this question about detecting the Excel version in .NET描述的一个模式,你可以使用JACOB检测,像这样安装的Excel版本:
现在很流畅,+1!作为一个Windows的仇敌,我从来没有想过使用COM这种东西。 – 2010-04-29 15:07:51
祝贺1000 :) – 2010-04-29 17:47:34
@Carl Smotricz:谢谢! – ig0774 2010-04-30 00:15:38
你意识到这可能是旧版本的Excel中打开,阅读并使用兼容包在此处修改.xlsx文档:http://support.microsoft.com/kb/924074 – ig0774 2010-04-29 15:03:27