datagrid的程序我就不写了Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "GB2312";
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
DataGrid1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End()
我按照这个程序写,可以运行,但是excel表的第一行出现的是数据库的列名,例如:buyname 等等
求教各位高手,怎么可以让excel表的第一行出现的是datagrid的列名,如:名称,编号等等(在datagrid中列名已经是汉字)

解决方案 »

  1.   

    HttpContext.Current.Response.Clear(); 
    HttpContext.Current.Response.Buffer= true; 
    HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
    HttpContext.Current.Response.Charset ="utf-8";
    HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
    HttpContext.Current.Response.ContentType ="application/ms-excel";
    mydatalist.Page.EnableViewState =false;
    System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
    System.IO.StringWriter  tw = new System.IO.StringWriter(myCItrad) ;
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
    DataGrid1.RenderControl(hw);
    HttpContext.Current.Response.Write(tw.ToString());
    HttpContext.Current.Response.End();
      

  2.   

    这其实就是datagrid的html代码,设置datagrid的headertext就行
      

  3.   

    问一下,如果打开的是Excel.Application,现在也不保存它为文件,如何象上面一样用流打开,
    相当于把DataGrid1.RenderControl(hw);改成打开Excel注流?
      

  4.   

    谢谢 tdrc_qyh(白杨)和LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 
    我修改了一下代码:
    /*EnableViewState = false;
    StringWriter sw=new StringWriter(); 
    sw.WriteLine("自编号\t分类号\t设备名称\t规格型号\t出厂编号\t摆放位置\t设备来源\t责任人\t价格\t厂家名称\t厂家地址\t厂家联系方式\t厂家联系人\t出厂日期\t到货日期\t验收人\t验收标准\t备注"); 
    foreach(DataRow dr in dt.Rows) 

    sw.WriteLine(dr["eiselfno"]+"\t"+dr["eiclassno"]+"\t"+dr["einame"]+"\t"+dr["eicategoryno"]+"\t"+dr["eioutno"]+"\t"+dr["eiposition"]+"\t"+dr["eiresource"]+"\t"+dr["eichargemen"]+"\t"+dr["eiprice"]+"\t"+dr["eiproductor"]+"\t"+dr["eiprodaddress"]+"\t"+dr["eicontacttel"]+"\t"+dr["eicontectman"]+"\t"+dr["eioutputdate"]+"\t"+dr["eiarrivedate"]+"\t"+dr["eicheckman"]+"\t"+dr["eicheckstandard"]+"\t"+dr["eire"]); 

    sw.Close(); 
    Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode("中文",System.Text.Encoding.UTF8)+".xls");  
    Response.ContentType = "application/ms-excel"; 
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");  
    Response.Write(sw);
    Response.End();*/