2011-07-24 33 views
0

我正在使用此代码将DataGridView行导出到Excel工作表。使用此导出到Excel代码无法写入单元格

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


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

     int i = 0; 
     int j = 0; 

     for (i = 0; i <= dgv.RowCount - 1; i++) 
     { 
      for (j = 0; j <= dgv.ColumnCount - 1; j++) 
      { 
       DataGridViewCell cell = dgv[j, i]; 
       xlWorkSheet.Cells[i + 5, j + 2] = cell.Value; 
      } 
     } 

     string SavedFilePath = Application.StartupPath + "\\GeneratedExcelReports\\"; 
     xlWorkBook.SaveAs(SavedFilePath + ExcelFileNameToCreate + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
     xlWorkBook.Close(true, misValue, misValue); 
     xlApp.Quit(); 

如果我加入这行代码:

xlWorkSheet.Cells[0,1].Value = "My Test Report"; 

它会产生错误,因为它在智能影音感打开该列表毫无作为的价值。如何在运行时编辑特定的单元格?

+0

什么是错误? –

回答

1

Cells属性是一个非零索引数组(或任何这被称为=>索引开始在)由于VB遗产。因此,要设置位于第1行和第1列的单元格的值,请使用以下代码:

xlWorkSheet.Cells[1, 1].Value = "My Test Report"; 
       ^
      must not be zero 
相关问题