乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > asp.<em>net</em> 中gridview导出到excel问题,要导...-net 导

asp.<em>net</em> 中gridview导出到excel问题,要导...-net 导

作者:乔山办公网日期:

返回目录:excel表格制作


先引用

先引用
using System.Security;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Configuration;

直接导出方法1.

public override void VerifyRenderingInServerForm(Control control)//导出Excel必须加整个不然会报e799bee5baa6e79fa5e98193e4b893e5b19e335
    {
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        GV1.Visible = true;
        string filename = "SendMailHistory";
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "UTF-8";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
        Response.ContentType = "application/vnd.ms-excel; charset=UTF-8";
        EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        GV1.RenderControl(hw);
        Response.Write(tw.ToString());
        Response.End();
    }

方法2用模版


protected void Button4_Click(object sender, EventArgs e)
    {
        
        string save_path = "", tick = "";
       
        ExcelOperate excelOperate = new ExcelOperate();
        string temp_path = Server.MapPath("~/DownLoad/Report");//生成的文件存放路径
        string loadfilename=Server.MapPath("~/DownLoad/Report/SendMailHistory.xlsx");
        string template_path = Server.MapPath("~/designer");//模板路径
        if (!Directory.Exists(temp_path))
        {
            Directory.CreateDirectory(temp_path);
            Directory.CreateDirectory(template_path);
        }
        try
        {
            if (File.Exists(loadfilename))
            {
                File.Delete(loadfilename);
            }
            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            if (app == null)
            {
               
            }
            app.Visible = false;
            app.UserControl = true;
            Workbooks workbooks = app.Workbooks;
            _Workbook workbook = workbooks.Add(template_path + "\\sendmailhistory.xlsx");
            Sheets sheets = workbook.Worksheets;
            _Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
            if (worksheet == null)
            {
               
            }
            //======数据写入excel
          
            int rowNum = 0;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                rowNum = i + 1;
                worksheet.Cells[6 + i, 1] = rowNum;
                worksheet.Cells[6 + i, 2] = dt.Rows[i]["wtemp"].ToString();
                worksheet.Cells[6 + i, 3] = dt.Rows[i]["YP_FormBG_ID"].ToString();
                worksheet.Cells[6 + i, 4] = dt.Rows[i]["PartNO"].ToString();
                worksheet.Cells[6 + i, 5] = dt.Rows[i]["ModelName"].ToString();
                worksheet.Cells[6 + i, 6] = dt.Rows[i]["SendUser"].ToString();
               // worksheet.get_Range(worksheet.Cells[14 + i, 7], worksheet.Cells[14 + i, 8]).Merge(); //合并单元格
                worksheet.Cells[6 + i, 7] = dt.Rows[i]["SendDate"].ToString();
                worksheet.Cells[6 + i, 8] = dt.Rows[i]["Mark1"].ToString();
                worksheet.get_Range(worksheet.Cells[6 + i, 1], worksheet.Cells[6 + i, 8]).Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
                worksheet.get_Range(worksheet.Cells[6 + i, 1], worksheet.Cells[6 + i, 8]).Borders.LineStyle = XlLineStyle.xlContinuous;
                
            }
            worksheet.Cells[rowNum + 6 + 1, 3] = "编制:";//worksheet.Cells[rowNum +6 +1, 3] 
            worksheet.Cells[rowNum + 6 + 1, 5] = "审批:";
            worksheet.Cells[rowNum + 6 + 1, 7] = "WL4E300002_AE";
            worksheet.get_Range(worksheet.Cells[rowNum + 6 + 1, 7], worksheet.Cells[rowNum + 6 + 1, 8]).Merge(); //合并单元格
 
            tick = DateTime.Now.Ticks.ToString();
            save_path = loadfilename;
            workbook.SaveAs(save_path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
            excelOperate.Dispose(worksheet, workbook, app);//关闭Excel进程
            labmsg.Text = "导出Excel成功";
            Response.Redirect("~/DownLoad/Report/SendMailHistory.xlsx");
        }
        catch (Exception ex)
        {
            labmsg.Text = "";
            labmsg.ForeColor = Color.Red;
            Response.Redirect("~/DownLoad/Report/SendMailHistory.xlsx");
           // s = false;
        }
    }


用我这段e799bee5baa6e79fa5e98193e59b9ee7ad94330,我一直在用

 protected void Button8_Click(object sender, EventArgs e)
    {
        GridView2.Visible = true;
        string filename = "QueryData";
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "UTF-8";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
        Response.ContentType = "application/vnd.ms-excel; charset=UTF-8";
        EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        GridView2.RenderControl(hw);
        Response.Write(tw.ToString());
        Response.End();
    }

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
HtmlForm form = new HtmlForm();
GridView1.EnableViewState = false;
page.EnableEventValidation = false;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(GridView1);
page.RenderControl(htw);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application nd.ms-excel";
string name = "Keyword_Report-" + System.DateTime.Now.ToShortDateString();
Response.AddHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
Response.Charset = "gb2312";
Response.ContentEncoding = Encoding.UTF8;
Response.Write(sb.ToString());
Response.End();

我测7a686964616fe78988e69d83365试过 可以用

绑定数据后

System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset = "GB2312";
// System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头e799bee5baa6e79fa5e98193e4b893e5b19e339信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=myU.xls");
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
// System.Web.HttpContext.Current.Response.AddHeader("Content-Length",sb.ToString());

// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";

// 把文件流发送到客户端
System.Web.HttpContext.Current.Response.Write(sb.ToString());
// 停止页面的执行

System.Web.HttpContext.Current.Response.End();

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网