带格式导出数据到Excel

导出按钮事件

protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment;filename=zjxx.xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文  
        Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。   
        this.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);
       
        Response.Write(AddExcelHead()); //显示网格线
        Response.Write("<style type='text/css'>tr{text-align:left;border:1px solid gray;vnd.ms-excel.numberformat:@}</style>"); //添加样式和Excel输出格式
        this.GridView1.RenderControl(oHtmlTextWriter); //将gv数据写入到字符流中
        Response.Write(oStringWriter.ToString()); //输入字符流
        Response.Write(AddExcelbottom());//显示网格线
        Response.End();  
    }

Excel网格线函数

public static string AddExcelHead()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<html xmlns:x="urn:schemas-microsoft-com:office:excel">");
        sb.Append(" <head>");
        sb.Append(" <!--[if gte mso 9]><xml>");
        sb.Append("<x:ExcelWorkbook>");
        sb.Append("<x:ExcelWorksheets>");
        sb.Append("<x:ExcelWorksheet>");
        sb.Append("<x:Name></x:Name>");
        sb.Append("<x:WorksheetOptions>");
        sb.Append("<x:Print>");
        sb.Append("<x:ValidPrinterInfo />");
        sb.Append(" </x:Print>");
        sb.Append("</x:WorksheetOptions>");
        sb.Append("</x:ExcelWorksheet>");
        sb.Append("</x:ExcelWorksheets>");
        sb.Append("</x:ExcelWorkbook>");
        sb.Append("</xml>");
        sb.Append("<![endif]-->");
        sb.Append(" </head>");
        sb.Append("<body>");
        return sb.ToString();

    }
    public static string AddExcelbottom()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("</body>");
        sb.Append("</html>");
        return sb.ToString();
    }

原文地址:https://www.cnblogs.com/net-study/p/3473065.html