检查 .NET Framework 上安装的 Excel 版本
页面创建日期 :
若要获取已安装的 Excel 版本,请使用Type.GetTypeFromProgID方法获取Excel.Application类型,并使用Activator.CreateInstance方法生成实例。 不要直接生成 Excel.Application 实例,以避免直接引用依赖于版本。 这样,您才能查看最新版本。
然后,您可以从生成的应用程序实例引用版本属性以获取版本。 检索的版本是 Excel 内部的版本。 例如,Excel 2010 为 14.0,Excel 2013 为 15.0。
此外,若要使用这些类,必须在 using 中设置"系统.反射"和"系统.运行时.InteropServices"。
<summary>
インストールされている Excel のバージョンを取得します。
</summary>
<returns>インストールされている Excel のバージョン。</returns>
public static decimal GetInstallExcelVersion()
{
// Excelアプリケーションに接続
var type = Type.GetTypeFromProgID("Excel.Application");
object application = null;
try
{
application = Activator.CreateInstance(type);
if (application == null)
{
// 未インストールの場合
return 0;
}
// バージョンを取得
var ver =
application.GetType().InvokeMember(
"Version", BindingFlags.GetProperty, null, application, null);
decimal version;
if (!decimal.TryParse(ver.ToString(), out version))
{
return 0;
}
return version;
}
finally
{
if (application != null)
{
Marshal.ReleaseComObject(application);
}
}
}
其他站点也有类似的描述,但某些网站没有使用 Marshal.ReleaseComObject 发布应用程序。 请记住,如果您忘记了这一点,Excel 进程将保持不变,因此请确保在 finally 中释放它。