none
DataGridView para Excel RRS feed

  • Pergunta

  • public void ExportToExcel()
    
      {
    
       ApplicationClass excel = new ApplicationClass();
    
       excel.Application.Workbooks.Add(true);
    
       int ColumnIndex = 0;
    
    
    
       foreach (DataGridViewTextBoxColumn col in dataGridView1.Columns)
    
       {
    
        ColumnIndex++;
    
        excel.Cells[1, ColumnIndex] = col.Name;
    
       }
    
       int rowIndex = 0;
    
       int linha = 0;
    
    
    
       while (linha < dataGridView1.Rows.Count)
    
       {
    
        ColumnIndex = 0;
    
        rowIndex++;
    
    
    
        foreach (DataGridViewTextBoxColumn col in dataGridView1.Columns)
    
        {
    
         ColumnIndex++;
    
         excel.Cells[rowIndex + 1, ColumnIndex] = dataGridView1.Rows[linha].Cells[col.Name].Value.ToString();
        }
    
        linha++;
    
       }
    
       
    
       excel.Visible = true;
    
       Worksheet worksheet = (Worksheet)excel.ActiveSheet;
    
       worksheet.Activate();
    
      }
    
    

    Ola, acima o código que estou utilizando para exportar um Datagridview para excel.

    O Problema que está aparecendo é quando ele chega na última coluna

    excel.Cells[rowIndex + 1, ColumnIndex] = dataGridView1.Rows[linha].Cells[col.Name].Value.ToString();

    dá esse erro

    System.NullReferenceException was unhandled
      Message="Referência de objeto não definida para uma instância de um objeto."

    O que posso fazer para resolver isso?

    Desde já agradeço e obrigado.

    quinta-feira, 8 de julho de 2010 14:20

Respostas

  • Cara, nao testei o codigo aqui MAS, eu acho q vc não esta escrevendo a sua primeira coluna, pq vc soma o ColumnIndex++ antes de excrever no excel.

    Verifica ai, e posta os resultados.

    :)

    quinta-feira, 8 de julho de 2010 15:38