How to detect MS Excel installed on the system

July 01, 2013 by Anuraj

.Net .Net 3.0 / 3.5 .Net 4.0

Today I faced an issue, I want to open an excel file from a Windows application; before opening the file, I want to verify that MS Excel installed on the system. I found a solution using registry from MSDN.

Here is the code snippet.

//14.0 is the version of the office installed.
var key = @"SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot\";
var installRoot = Registry.LocalMachine.OpenSubKey(key, false);
if (installRoot != null)
{
    //This will return the installation folder.
    var installedPath = installRoot.GetValue("Path");
}

But the problem with the source code is I need to know the office versions, and can identify exactly which versions are installed.

And here is the office version information.

**Office Version****Version Number**
Office 20009.0
Office XP10.0
Office 200311.0
Office 200712.0
Office 201014.0
Office 201315.0

I don’t want to know the version of the excel installed. I just want to open a XLS file created by the application. Later I found another code snippet which will return whether Excel installed or not. Here is the code snippet.

var excelApplication = Type.GetTypeFromProgID("Excel.Application");
if (null == excelApplication)
{
    //Excel not installed.
}

Happy Programming

Support My Work

If you find my content helpful, consider supporting my work. Your support helps me continue creating valuable resources for the community.

Share this article

Found this useful? Share it with your network!

Copyright © 2025 Anuraj. Blog content licensed under the Creative Commons CC BY 2.5 | Unless otherwise stated or granted, code samples licensed under the MIT license. This is a personal blog. The opinions expressed here represent my own and not those of my employer. Powered by Jekyll. Hosted with ❤ by GitHub