Microsoft.Office.Interop.Excel を使用して、C# で Excel ファイルにデータを書き込んでいます。Excel 2010 を使用しているため、Microsoft Excel 14.0 Object Library を参照として追加しました。ただし、Excel 2003 以降でプログラムを動作させる必要があります。そのため、Microsoft Excel 14.0 Object Library への参照を削除し、マシンにインストールされている Excel のバージョンを確認して、その COM オブジェクト ライブラリを使用する方法を探しています。
現在、このコードを使用してバージョンを確認していますが、「2010」ではなく「2007」が返されます。私は何を間違っていますか?
namespace OfficeVersionCheck
{
using System;
using Microsoft.Win32;
class Program
{
static void Main(string[] args)
{
RegistryKey localMachine = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Office\");
string version = string.Empty;
foreach (string key in localMachine.GetSubKeyNames())
{
if (key == "11.0")
version = "2003";
else if (key == "12.0")
version = "2007";
else if (key == "14.0")
version = "2010";
if (!string.IsNullOrEmpty(version))
{
break;
}
}
Console.Write(version);
Console.ReadKey();
}
}
}
バージョンを確認したら、その COM オブジェクト ライブラリをロードしてプログラムで使用する必要があります。これを行う方法はありますか?どんな助けでも大歓迎です。前もって感謝します。