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

目前我正在制作一个导出数据到excel的程序。 我的电脑运行Windows 7和Office 2013,但该程序应该能够运行在较旧的个人电脑上的Windows XP和Office 2010上。当我在XP上运行该应用程序时,它返回一个错误。

我发现我应该编译一个旧版本的办公室。 我试图下载o2010pia安装程序,但试图安装程序后,它closures后加载栏往前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); 

或者,您可以使用第三方库,例如NetOffice ,它包装了Office-Communication,因此您不必担心该版本。

已经有一个SO条款的答案,这将有助于你。

NetOffice提供的function

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

当我遇到这个问题的时候,我发现只有在这样一个老办公室的系统上编译才是解决办法。

2010年的PIA软件包可以帮助您,直到部署您的应用程序,但遗憾的是,您需要在Office 2010的机器上进行编译。

我个人使用我的电脑与办公室2013年的应用程序的工作。当涉及到部署,我用了一个虚拟机有Office 2010编译应用程序。