2012-03-12 39 views
1

在我的c#程序中,我使用excel add來將數據寫入excel文件,下面只是我嘗試訪問excel表格的一個示例。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。核心;)進出口新的C#,任何人都可以幫我這個,感謝

回答

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

如果你想使用的板材,而不是指數的名稱和您使用Linq如下:

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

如果表中沒有找到xlsheet變量將是無效

0

這是我會怎麼做:

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工作簿測試,它爲我的作品。

0

沒有人回答,因此正確答案,我檢查了它和它的工作:

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"; 
0
Excel.Application xlAppToExport = new Excel.Application(); 
xlAppToExport.Workbooks.Add(""); 

Excel.Worksheet xlWorkSheetToExport; 

xlWorkSheetToExport =(Excel.Worksheet)xlAppToExport.Application.Worksheets.Add(); 
xlWorkSheetToExport.Name = "customer";