将 DataGridView 数据导出到 Excel [英] Export DataGridView data to excel

查看:34
本文介绍了将 DataGridView 数据导出到 Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我现在将 DataGridView 数据导出到 Excel 工作表我想将组合框和文本框选定的值传递给 Excel 工作表,我必须为我的 Excel 工作表提供标题作为我的 Windows 应用程序的报告我该怎么做?

In my application I'm exporting DataGridView data to excel sheet now I want to pass the combobox and textbox selected values to excel sheet and I have to give title to my excel sheet as Report for my windows application how can I do that?

有人可以帮我吗?

我有将 datagridview 数据导出到 excel 的代码:

I have code for exporting datagridview data to excel:

private void btnexcel_Click(object sender, EventArgs e)    
{

  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 <= dataGridView1.RowCount  - 1; i++)    
  {    
      for (j = 0; j <= dataGridView1.ColumnCount  - 1; j++)    
      {    
         DataGridViewCell cell = dataGridView1[j, i];

         xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
      }    
  }

  xlWorkBook.SaveAs("csharp.net-informations.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);

  MessageBox.Show("Excel file created , you can find the file c:\csharp.net-informations.xls");

}


private void releaseObject(object obj)    
{
    try    
    {   
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);

        obj = null;    
    }    
    catch (Exception ex)    
    {    
       obj = null;

       MessageBox.Show("Exception Occured while releasing object " + ex.ToString());    
    }    
    finally    
    {    
        GC.Collect();
    }    
}


}
}

推荐答案

    private void ExportarDataGridViewExcel(DataGridView grd)
    {
        SaveFileDialog fichero = new SaveFileDialog();
        fichero.Filter = "Excel (*.xls)|*.xls";
        fichero.FileName = "export.xls";
        if (fichero.ShowDialog() == DialogResult.OK)
        {
            Microsoft.Office.Interop.Excel.Application aplicacion;
            Microsoft.Office.Interop.Excel.Workbook libros_trabajo;
            Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo;
            aplicacion = new Microsoft.Office.Interop.Excel.Application();
            libros_trabajo = aplicacion.Workbooks.Add();
            hoja_trabajo =
                (Microsoft.Office.Interop.Excel.Worksheet)libros_trabajo.Worksheets.get_Item(1);

            // changing the name of active sheet
            hoja_trabajo.Name = "Exported from App";
            // storing header part in Excel
            for (int i = 1; i < grd.Columns.Count + 1; i++)
            {
                hoja_trabajo.Cells[1, i] = grd.Columns[i - 1].HeaderText;
            }

            //Recorremos el DataGridView rellenando la hoja de trabajo
            for (int i = 1; i < grd.Rows.Count + 1; i++)
            {
                for (int j = 0; j < grd.Columns.Count; j++)
                {
                    hoja_trabajo.Cells[i + 1, j + 1] = grd.Rows[i-1].Cells[j].Value.ToString();
                }
            }
            libros_trabajo.SaveAs(fichero.FileName,
                Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
            libros_trabajo.Close(true);
            aplicacion.Quit();
        }
    }

   //in the click event of button1
    private void button1_Click(object sender, EventArgs e)
    {
        ExportarDataGridViewExcel(dataGridView1);
    }  

这篇关于将 DataGridView 数据导出到 Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆