出口的DataGridView数据到excel [英] Export DataGridView data to excel

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

问题描述

在我的申请,我出口的DataGridView数据的Excel工作表,现在我想通过组合框和文本框选择的值到Excel表,我得给标题我的Excel工作表作为报告我的windows应用程序,我怎么能做到这一点?



任何人都可以帮助我在此



我对出口的DataGridView数据到excel代码:

 私人无效btnexcel_Click(对象发件人,EventArgs五)
{

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;

对象misValue = System.Reflection.Missing.Value;

xlApp =新Excel.ApplicationClass();

xlWorkBook = xlApp.Workbooks.Add(misValue);

xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

INT I = 0;
INT J = 0;

为(i = 0; I< = dataGridView1.RowCount - 1;我++)
{
为(J = 0; J< = dataGridView1.ColumnCount - 1 ; J ++)
{
细胞的DataGridViewCell = 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(真,misValue,misValue);

xlApp.Quit();


releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);

MessageBox.Show(创建Excel文件,你可以找到文件c:\\csharp.net-informations.xls);

}


私人无效releaseObject(obj对象)
{

{
System.Runtime .InteropServices.Marshal.ReleaseComObject(OBJ);

的obj = NULL;
}
赶上(异常前)
{
的obj = NULL;

MessageBox.Show(出现异常,同时释放对象+ ex.ToString());
}
终于
{
GC.Collect的();
}
}


}
}


解决方案

 私人无效ExportarDataGridViewExcel(DataGridView的GRD)
{
SaveFileDialog fichero =新SaveFileDialog();
fichero.Filter =Excel文件(的* .xls)| * .xls的;
fichero.FileName =export.xls;
如果(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 =新Microsoft.Office.Interop.Excel.Application();
libros_trabajo = aplicacion.Workbooks.Add();
hoja_trabajo =
(Microsoft.Office.Interop.Excel.Worksheet)libros_trabajo.Worksheets.get_Item(1);

//改变当前工作表
hoja_trabajo.Name的从应用程序导出的名字=;
//在Excel
存储头部分的for(int i = 1; I< grd.Columns.Count + 1;我++)
{
hoja_trabajo.Cells [1,我] = grd.Columns [我 - 1] .HeaderText;
}

// Recorremos EL的DataGridView rellenando拉赫亚德特拉瓦霍
的for(int i = 1; I< grd.Rows.Count + 1;我++)
{
为(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(真);
aplicacion.Quit();
}
}

//在Button1的
私人无效的button1_Click的click事件(对象发件人,EventArgs五)
{
ExportarDataGridViewExcel (dataGridView1);
}


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?

Can anyone help me on this?

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天全站免登陆