C# 使用已安装的Excel选择正确的选项

C# 使用已安装的Excel选择正确的选项,c#,import,export-to-excel,using,excel-2010,C#,Import,Export To Excel,Using,Excel 2010,我有一个场景,客户机可以安装Excel 2007或Excel 2010,我需要能够导出和导入他们创建的Excel文件,OLEDB不是一个选项,所以我打算使用互操作服务 问题是,当我为2010年编写代码时,它在2007年不起作用,反之亦然。我如何才能做到这一点 我是否可以导入这两个引用并根据安装的版本定义Excel using Excel = Microsoft.Office.Interop.Excel; Excel.Application xlApp; Excel.Wor

我有一个场景,客户机可以安装Excel 2007或Excel 2010,我需要能够导出和导入他们创建的Excel文件,OLEDB不是一个选项,所以我打算使用互操作服务

问题是,当我为2010年编写代码时,它在2007年不起作用,反之亦然。我如何才能做到这一点

我是否可以导入这两个引用并根据安装的版本定义Excel

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            Excel.Range xlRange;

            object misValue = System.Reflection.Missing.Value;

            pbarExcelGenerate.Visible = true;

            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Add(misValue);

            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            xlWorkSheet.Name = "Material Results";

            pbarExcelGenerate.Value = 5;


            xlRange = xlWorkSheet.get_Range("a1", "b1");
            xlRange.Merge(false);
            xlRange.Value = "Material Name";
            xlRange.HorizontalAlignment = 3;
            xlRange.Font.Bold = true;
            xlRange.Font.Size = 16;

不,你不能。。。您可以将较低版本用于这两个。。。或者使用一个完全不需要安装Excel的第三方库(免费或商业),或者您可以使用原始COM访问Excel,这会让您感到不舒服,但允许这样做

编辑-根据评论(感谢@Rup):


您可以下载VSTO的较旧版本,该版本应随2007年的Interop库一起提供

我可以从何处获得较低版本,而无需安装2007?不,不是真的。。。您至少需要一台具有该版本的机器,尽管我不确定,我隐约记得,当前的VS提供了两个版本…您可以下载,其中应包括正确的互操作库。安装VSTO后,互操作DLL应可用,并且您可以在项目中引用它…安装并添加引用Microsoft visual studio 2008 tools for office project clientexcel 2007 9.0的软件包,但现在怎么办?我需要用什么?