目前我正在制作一个将数据导出为excel的程序。 我的电脑正在运行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);
答案 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