日期:2014-05-18 浏览次数:21197 次
 public override void VerifyRenderingInServerForm(Control control)
    {
       
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string style = @"<style> .text { mso-number-format:\@; } </style> ";
        Response.ClearContent();
        Response.Buffer = true;
        string strFileName = "Myfile.xls";
        Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8));
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 
        Response.ContentType = "application/excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        GridView1.RenderControl(htw);
        // Style is added dynamically
        Response.Write(style);
        Response.Write(sw.ToString());
        Response.End();
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Cells[1].Attributes.Add("class", "text");
        }
    }
------解决方案--------------------
         public bool ExportDataGridview(DataGridView gridView, bool isShowExcele)
        {
            if (gridView.Rows.Count == 0)
            {
                return false;
            }
            //建立Excel对象
            Excel.Application excel = new Excel.Application();
            excel.Application.Workbooks.Add(true);
            excel.Visible = isShowExcele;
            int rowCount = gridView.Rows.Count;
            int colCount = gridView.Columns.Count;
            object[,] dataArray = new object[rowCount, colCount];
            for (int i = 0; i < gridView.ColumnCount; i++)
            {
                dataArray[0, i] = gridView.Columns[i].HeaderText;
            }
            for (int i = 0; i < rowCount-1; i++)
            {
                for (int j = 0; j < colCount; j++)
                {
                    if (gridView[j, i].Value.GetType() == typeof(string))
                    {
                        dataArray[i+1, j] = "'" + gridView[j,i].Value.ToString();
                    }
                    else
                    {
                        dataArray[i+1, j]  = gridView[j, i].Value.ToString();
                    }
                }
            }