编译程序以使用旧版本的Excel运行

时间:2015-06-29 11:27:06

标签: c# excel

目前我正在制作一个将数据导出为ex​​cel的程序。 我的电脑正在运行Windows 7和Office 2013,但是 程序应该能够在旧的Windows惠普Windows XP上运行 和Office 2010.当我在xp上运行应用程序时,它返回一个错误 那个。

我发现我应该为旧版本编译 办公室。我尝试下载o2010pia安装程序,但尝试后 在加载条移动10%左右后安装它关闭的程序。

这是我的参考

using Excel = Microsoft.Office.Interop.Excel;


Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            string rangeborder = (4 + student.GetLength(0)).ToString();

            xlWorkSheet.get_Range("B4", "E" + rangeborder).Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
            xlWorkSheet.get_Range("B4", "E" + rangeborder).Borders.Color = ColorTranslator.ToOle(Color.Black);
            xlWorkSheet.get_Range("B4", "E" + rangeborder).Borders.Weight = 3d;
            xlWorkSheet.get_Range("B4", "E" + rangeborder).Borders.LineStyle = Excel.XlLineStyle.xlContinuous;

            Excel.Range er = xlWorkSheet.get_Range("C:D", System.Type.Missing);

            er.EntireColumn.ColumnWidth = 25;

            xlWorkSheet.Range[xlWorkSheet.Cells[2, 2], xlWorkSheet.Cells[2, 6]].Merge();

            xlWorkSheet.Cells[4, 2] = " ";
            xlWorkSheet.Cells[4, 3] = "a";
            xlWorkSheet.Cells[4, 4] = "b";
            xlWorkSheet.Cells[4, 5] = "c";

            for (int x = 0; x < student.GetLength(0); x++)
            {
                xlWorkSheet.Cells[x + 5, 2] = x;


            }

            xlWorkBook.SaveAs(path + "abc" + printDatum() + "_"+ ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);

2 个答案:

答案 0 :(得分:1)

当我遇到这个问题时,我认为仅在具有这样一个旧办公室的系统上进行编译就是解决方案。

2010 PIA软件包可以帮助您完成应用程序的部署,但遗憾的是您需要在具有Office 2010的计算机上进行编译。

我个人使用我的计算机和Office 2013在应用程序上工作。在部署时,我使用了一台具有office 2010的虚拟机来编译应用程序。

答案 1 :(得分:1)

或者,您可以使用像NetOffice这样的第三方库,它可以包装Office-Communication,因此您无需担心版本。

已经有SO Article的答案可以帮助您。

  

NetOffice提供的功能

     
      
  • 没有版本限制的Office集成
  •   
  • 包括Office版本2000,2002,2003,2007,2010,2013的所有功能
  •   
  • 在语法和语义上与Microsoft Interop程序集相同
  •   
  • 如果您已经了解Office对象模型,请使用现有的PIA代码进行培训
  •   
  • 适用于.NET 2.0或更高版本
  •   
  • 没有依赖关系,没有互操作程序集,不需要VSTO
  •