Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将datagridview导出到c#中的Excel?我有一个错误_C#_Excel_Datagridview - Fatal编程技术网

如何将datagridview导出到c#中的Excel?我有一个错误

如何将datagridview导出到c#中的Excel?我有一个错误,c#,excel,datagridview,C#,Excel,Datagridview,代码如下: private void ExportarDataGridViewExcel(DataGridView grd) { SaveFileDialog fichero = new SaveFileDialog(); fichero.Filter = "Excel (*.xls)|*.xls"; if (fichero.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.A

代码如下:

private void ExportarDataGridViewExcel(DataGridView grd)
{
   SaveFileDialog fichero = new SaveFileDialog();
   fichero.Filter = "Excel (*.xls)|*.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);

       for (int i = 0; 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].Cells[j].Value.ToString();
           }
       }
       libros_trabajo.SaveAs(fichero.FileName, 
           Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
       libros_trabajo.Close(true);
       aplicacion.Quit();
    }
}
在本部分:

for (int j = 0; j < grd.Columns.Count; j++)
{
   //PROBLEM// hoja_trabajo.Cells[i + 1, j + 1] = grd.Rows[i].Cells[j].Value.ToString();//PROBLEM
}
for(int j=0;j

请提供帮助。

创建一个没有母版页集成的页面(如果您在Asp.Net中使用母版页)

然后将页面加载事件中的所有内容绑定到您需要的网格数据,并添加此

public void CerateExcel()
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("content-disposition", "attachment;filename=Name.xls");
        Response.ContentType = "application/ms-excel";
        Response.ContentEncoding = System.Text.Encoding.Unicode;
        Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());

        System.IO.StringWriter sw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);

        form1.RenderControl(hw); //form1 it's name of you .aspx page (a form name with runat='server' tag)

        Response.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }

你能用英语说明你的错误吗?
public void CerateExcel()
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("content-disposition", "attachment;filename=Name.xls");
        Response.ContentType = "application/ms-excel";
        Response.ContentEncoding = System.Text.Encoding.Unicode;
        Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());

        System.IO.StringWriter sw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);

        form1.RenderControl(hw); //form1 it's name of you .aspx page (a form name with runat='server' tag)

        Response.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }