Excel加载项,如何写入Excel工作表

在我的c#程序中,我使用excel add来将数据写入excel文件,下面只是我尝试访问excel表单的一个示例。

private void button1_Click(object sender, EventArgs e) { Excel.Application xl_app = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); Excel.Workbook xl_workbook = null; xl_workbook = xl_app.ActiveWorkbook; Excel.Worksheet sheet = null; sheet = (Excel.Worksheet)xl_workbook.Worksheets.get_Item("Sheet1"); sheet.Cells[1, 1] = "Name"; } 

当我运行这个我得到一个错误,说:“对象引用未设置为一个对象的实例”表单对象。(我已经使用这些Microsoft.Office.Interop.Excel,Microsoft.Office.Core;)林新的C#,任何人都可以帮助我,谢谢

  sheet = (Excel.Worksheet)xl_workbook.Worksheets.get_Item(1); 

这是我将如何做到这一点:

 private void button1_Click(object sender, EventArgs e) { Excel.Application xlApp = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); Excel.Workbook xlWorkbook = xlApp.ActiveWorkbook; Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[1]; xlWorksheet.Cells[1,1] = "Name"; } 

我用Visual C#2010 Express和一个开放的Excel工作簿进行了testing,它适用于我。

如果您想使用表格的名称而不是索引,并使用Linq,如下所示:

 var xlSheet = xl_workbook.Cast<_Worksheet>().FirstOrDefault(x => x.Name == "Sheet1") 

如果未find工作表,则xlsheetvariables将为空

没有人回答如此正确答案,我检查了它,它的工作原理:

 Excel.Worksheet activeWorksheet = ((Excel.Worksheet)Application.ActiveSheet); Excel.Range firstRow = activeWorksheet.get_Range("A1"); firstRow.EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown); Excel.Range newFirstRow = activeWorksheet.get_Range("A1"); newFirstRow.Value2 = "This text was added by using code"; 
 Excel.Application xlAppToExport = new Excel.Application(); xlAppToExport.Workbooks.Add(""); Excel.Worksheet xlWorkSheetToExport; xlWorkSheetToExport =(Excel.Worksheet)xlAppToExport.Application.Worksheets.Add(); xlWorkSheetToExport.Name = "customer";