C# 获取Excel版本

来源:http://bbs.csdn.net/topics/330048207

5楼很欢乐,哈哈。

郑重的向6楼的表示感谢:

public static double JongCheckExcelVer()
        {
            Type objExcelType = Type.GetTypeFromProgID("Excel.Application");
            if (objExcelType == null)
            {
                return 0;
            }
            object objApp = Activator.CreateInstance(objExcelType);
            if (objApp == null)
            {
                return 0;
            }
            object objVer = objApp.GetType().InvokeMember("Version", BindingFlags.GetProperty, null, objApp, null);
            double iVer = Convert.ToDouble(objVer.ToString());
            objVer = null;
            objApp = null;
            objExcelType = null;
            GC.Collect();
            return iVer;
        }

        public static String JongGetExcelVerStr()
        {
            String s1;
            double excelver;
            excelver = JongCheckExcelVer();// ExistsExcelRegedit();
            s1 = " Office ";
            if (excelver == 0)
            {
                MessageBox.Show("無法識別Excel的版本", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Information);
                s1 = "無法識別 office 版本";
            }
            else if (excelver >= 14) s1 += "2010或以上";
            else if (excelver >= 12) s1 += "2007";
            else if (excelver >= 11) s1 += "2003";
            else if (excelver >= 10) s1 += "XP";
            else if (excelver >= 9) s1 += "2000";
            else if (excelver >= 8) s1 += "97";
            else if (excelver >= 7) s1 += "95";

            return s1;
        } 

  通过上述代码解决了Excel版本识别的问题。

posted @ 2012-12-07 13:48  KT  阅读(1653)  评论(0编辑  收藏  举报