public override void VerifyRenderingInServerForm(System.Web.UI.Control control)
    {}
protected void btExport_Click(object sender, EventArgs e)
{
gvCheckIn_Inf.AllowPaging = false;
                    gvCheckIn_Inf.DataSource = (DataTable)Session[PageID + "Result_Ds"];
                    gvCheckIn_Inf.DataBind();                    //导出按钮事件,将GridView中的数据导出到Excel中
                    Response.Clear();
                    Response.Buffer = true;
                    Response.Charset = "UTF-8";
                    Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
                    //设置输出流为简体中文
                    Response.ContentType = "application/ms-excel";
                    //设置输出文件类型为excel文件。
                    gvCheckIn_Inf.Page.EnableViewState = false;
                    System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
                    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
                    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
                    gvCheckIn_Inf.RenderControl(oHtmlTextWriter);
                    Response.Write(oStringWriter.ToString());
                    Response.End();                    gvCheckIn_Inf.AllowPaging = true;
                    gvCheckIn_Inf.DataSource = (DataTable)Session[PageID + "Result_Ds"];
                    gvCheckIn_Inf.DataBind();
}

解决方案 »

  1.   

    你可以把DataGrid写在一个空白的页面内,这样导出的就只有DataGrid了吧。
      

  2.   

    用下面的导试试:public static void ExportToExcel(DataGridView dataGridview1)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "Ms Execl files (*.xls)|*.xls";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                //saveFileDialog.CreatePrompt = true;
                saveFileDialog.Title = "导出Excel文件到";
                string fileName;
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                    fileName = saveFileDialog.FileName;
                else
                    return;            System.IO.StreamWriter excelDoc;            excelDoc = new System.IO.StreamWriter(fileName);
                const string startExcelXML = "<xml version>\r\n<Workbook " +
                      "xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"\r\n" +
                      " xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n " +
                      "xmlns:x=\"urn:schemas-    microsoft-com:office:" +
                      "excel\"\r\n xmlns:ss=\"urn:schemas-microsoft-com:" +
                      "office:spreadsheet\">\r\n <Styles>\r\n " +
                      "<Style ss:ID=\"Default\" ss:Name=\"Normal\">\r\n " +
                      "<Alignment ss:Vertical=\"Bottom\"/>\r\n <Borders/>" +
                      "\r\n <Font/>\r\n <Interior/>\r\n <NumberFormat/>" +
                      "\r\n <Protection/>\r\n </Style>\r\n " +
                      "<Style ss:ID=\"BoldColumn\">\r\n <Font " +
                      "x:Family=\"Swiss\" ss:Bold=\"1\"/>\r\n </Style>\r\n " +
                      "<Style     ss:ID=\"StringLiteral\">\r\n <NumberFormat" +
                      " ss:Format=\"@\"/>\r\n </Style>\r\n <Style " +
                      "ss:ID=\"Decimal\">\r\n <NumberFormat " +
                      "ss:Format=\"0.0000\"/>\r\n </Style>\r\n " +
                      "<Style ss:ID=\"Integer\">\r\n <NumberFormat " +
                      "ss:Format=\"0\"/>\r\n </Style>\r\n <Style " +
                      "ss:ID=\"DateLiteral\">\r\n <NumberFormat " +
                      "ss:Format=\"mm/dd/yyyy;@\"/>\r\n </Style>\r\n " +
                      "</Styles>\r\n ";
                const string endExcelXML = "</Workbook>";            int rowCount = 0;
                int sheetCount = 1;            excelDoc.Write(startExcelXML);
                excelDoc.Write("<Worksheet ss:Name=\"Sheet" + sheetCount + "\">");
                excelDoc.Write("<Table>");
                excelDoc.Write("<Row>");            //写标题 
                for (int i = 0; i < dataGridview1.ColumnCount; i++)
                {
                    excelDoc.Write("<Cell ss:StyleID=\"BoldColumn\"><Data ss:Type=\"String\">");
                    excelDoc.Write(dataGridview1.Columns[i].HeaderText);
                    excelDoc.Write("</Data></Cell>");
                }            excelDoc.Write("</Row>");
                for (int j = 0; j < dataGridview1.Rows.Count; j++)
                {
                    rowCount++;
                    if (rowCount == 64000)
                    {
                        rowCount = 0;
                        sheetCount++;
                        excelDoc.Write("</Table>");
                        excelDoc.Write(" </Worksheet>");
                        excelDoc.Write("<Worksheet ss:Name=\"Sheet" + sheetCount + "\">");
                        excelDoc.Write("<Table>");
                    }
                    excelDoc.Write("<Row>");                for (int k = 0; k < dataGridview1.Columns.Count; k++)
                    {
                        if (dataGridview1.Rows[j].Cells[k].Value == null)
                            continue;
                        string XMLstring = dataGridview1.Rows[j].Cells[k].Value.ToString();                    XMLstring = XMLstring.Trim();
                        XMLstring = XMLstring.Replace("&", "&");
                        XMLstring = XMLstring.Replace(">", ">");
                        XMLstring = XMLstring.Replace("<", "<");
                        excelDoc.Write("<Cell ss:StyleID=\"StringLiteral\">" +
                                       "<Data ss:Type=\"String\">");
                        excelDoc.Write(XMLstring);
                        excelDoc.Write("</Data></Cell>");
                    }
                    excelDoc.Write("</Row>");
                }
                excelDoc.Write("</Table>");
                excelDoc.Write(" </Worksheet>");
                excelDoc.Write(endExcelXML);
                excelDoc.Close();
            }
      

  3.   

    private void ExportDataGrid(string FileType, string FileName) //植DataGrid絳堤 

    Response.Charset = "GB2312"; 
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  Response.AppendHeader("Content-Disposition", "attachment;filename=" +HttpUtility.UrlEncode(FileName,Encoding.UTF8).ToString()); 
    Response.ContentType = FileType; 
    this.EnableViewState =false; 
    StringWriter tw = new StringWriter(); 
    HtmlTextWriter hw =new HtmlTextWriter(tw); 
    GRID.RenderControl(hw); 
    Response.Write(tw.ToString()); 
    Response.End(); 
    }