我用以下代码将datagrid数据导出到excel,但有若干问题
1.我将datagrid某一列如ID列隐藏,程序就出错
2.我的数据库字段是英文名称,导出到excel后,列的名称也还是英文的,
如果是c/s架构的话,数据库中的字段是英文的,可以通过datagrid样式,显示成中文名,不知道哪位高手能给出在b/s 架构下实现这种效果的代码或思路
this.DataGrid1.AllowPaging = false;//消除分页
DB();//绑定datagrid的方法,你应该有
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
DataGrid1.RenderControl(hw);
Response.Write(sw.ToString());
Response.End();

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB
      

  2.   

    在未对dagagrid处理情况下,<asp:Dagagrid id="dgExcel" runat="server"></ asp:Dagagrid>
    用以下程序将dagagrid输出到excel,可以输出,但是在excel中看到的内容和数据库一模一样!!每一列的名称都是英文的,因为数据库字段是英文名称!!
    Response.ContentType="application/vnd.ms-excel";
                   Response.Charset="";
    System.IO.StringWriter tw=new System.IO.StringWriter();
                    System.Web.UI.HtmlTextWriter hw=new System.Web.UI.HtmlTextWriter(tw);
    dgExcel.RenderControl(hw);               Response.Write(tw.ToString());
    Response.End();
    我想在excel中看到的是中文的字段名于是我给dagagrid加了样式,但加了之后,程序就报错了,
    <asp:Dagagrid id="dgExcel" runat="server">
    <SelectedItemStyle ForeColor="Black" BackColor="#00CCFF"></SelectedItemStyle>
    <AlternatingItemStyle ForeColor="Black" BackColor="#F7F7F7"></AlternatingItemStyle>
    <ItemStyle ForeColor="Black" BackColor="White"> </ItemStyle>
    <HeaderStyle Font-Size="20px" Font-Bold="True"> </HeaderStyle>
    <Columns> 
    <asp:ButtonColumn DataTextField="name" HeaderText="企业名称" CommandName="name">
    </asp:ButtonColumn>
    <asp:ButtonColumn DataTextField="name" HeaderText="联系人" CommandName="name">
    </asp:ButtonColumn>
    </Columns>
    </ asp:Dagagrid>