private void Page_Load(object sender, System.EventArgs e)
{if(!Page.IsPostBack)
{
String strSQL ;
SqlConnection  objConn=new SqlConnection(Application["connstr"].ToString());
objConn.Open();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand =new SqlCommand();
da.SelectCommand.Connection =objConn;
DataSet ds=new DataSet();
strSQL="select * from 区域";
da.SelectCommand.CommandText =strSQL;
da.Fill(ds);
DataView dv=new DataView(ds.Tables[0]);
DataGrid1.DataSource =dv;
DataGrid1.DataBind();
objConn.Close();
objConn.Dispose();
}
}
private void exptoexl()
{
OWC.SpreadsheetClass xlssheet=new OWC.SpreadsheetClass();
OWC.ChartSpaceClass cc=new OWC.ChartSpaceClass();
//     输出标题
for (int i=0;i<DataGrid1.Columns.Count;i++)
{
xlssheet.ActiveSheet.Cells[1,i+1]=DataGrid1.Columns[i].HeaderText;
}
//     输出字段内容
for(int j=2;j<DataGrid1.Items.Count ;j++)
{
for(int i=0;i<DataGrid1.Columns.Count;i++)
{
xlssheet.ActiveSheet.Cells[j,i+1]=DataGrid1.Items[j].Cells[i].Text.Replace("&nbsp;"," ");

}
}

try
{
xlssheet.ActiveSheet.Export(Server.MapPath(".") + "\\Images\\1.xls",OWC.SheetExportActionEnum.ssExportActionNone);

Response.Write("<script language=javascript>window.open('images/1.xls');</script>");
}
catch(Exception d)
{
Response.Write("错误:" + d.Message.ToString());
}
}

解决方案 »

  1.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=EC5E84EC-68F9-4CD7-9E11-6F5C92027F0B
      

  2.   

    你的DataGrid是否有模板列啊,必须先去掉模板列才行
      

  3.   

    Protected Sub toExcel_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
                ToExcel1(datagrid1)
            End Sub        Sub ToExcel1(ByVal ctl As System.Web.UI.Control)
                Response.Charset = "GB2312"
                Response.AppendHeader("Content-Disposition", "attachment;filename=report.xls")
                Response.ContentEncoding = System.Text.Encoding.UTF8
                Response.ContentType = "application/ms-excel"            ctl.Page.EnableViewState = False
                Dim tw As System.IO.StringWriter = New System.IO.StringWriter()
                Dim hw As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(tw)            ctl.RenderControl(hw)            Response.Write(tw.ToString())
                Response.End()
            End Sub我一直这样实现的!屡试不爽
      

  4.   

    如果按楼上的哪样做的话,button应该怎么写呀!
    <asp:button ID="??" runat="server" Text="打印当前数据" runat="server" OnClick="??"  />
      

  5.   

    private void ToExcel(System.Web.UI.Control ctl) 

    //Response.Charset="GB2312"; 
    Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");  
    //Response.ContentEncoding = System.Text.Encoding.UTF8; 
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");


    Response.ContentType = "application/ms-excel";  ctl.Page.EnableViewState = false; 
    System.IO.StringWriter tw = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);  ctl.RenderControl(hw);  Response.Write(tw.ToString()); 
    Response.End();  }
      

  6.   

    <asp:button ID="dy" runat="server" Text="打印当前数据" OnClick="toExcel_Click" />
    编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: BC30408: 方法“Protected Sub toExcel_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs)”没有与委托“Delegate Sub EventHandler(sender As Object, e As System.EventArgs)”相同的签名。请问这是怎么回事呀!!!
      

  7.   

    上面的问题解决了,但执行时有错误提示,如下!!!
    类型“DataGridLinkButton”的控件“myGrid__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 类型“DataGridLinkButton”的控件“myGrid__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。源错误: 
    行 218:            Dim hw As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(tw)
    行 219:
    行 220:            ctl.RenderControl(hw)
    行 221:
    行 222:            Response.Write(tw.ToString())
     
      

  8.   

    <asp:datagrid runat="server" ID="myGrid" 
     AutoGenerateColumns="false"
     AllowPaging="true"
     PageSize="15"
     OnPageIndexChanged="zscpage"
     AllowSorting="true"
     OnSortCommand="zscsort"
     Width="98%"
     ItemStyle-HorizontalAlign="center"
     HorizontalAlign="Center"

    >
    <headerstyle Font-Bold="true" HorizontalAlign="center" />
    <pagerstyle Mode="numericpages" PageButtonCount="5" HorizontalAlign="right" />
    <columns>
    <asp:TemplateColumn HeaderText="名次"   >
              <ItemTemplate   >
               <%# Container.ItemIndex + 1%>   
            </ItemTemplate>
            </asp:TemplateColumn>
           </columns>
    <columns>
    <asp:boundcolumn DataField="学号" HeaderText="学号" SortExpression="学号" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="语文" HeaderText="语文" SortExpression="语文" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="代数" HeaderText="代数" SortExpression="代数" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="英语" HeaderText="英语" SortExpression="英语" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="总分1" HeaderText="总分1" SortExpression="总分1" />
    </columns>
    <columns>
    <asp:boundcolumn  DataField="政治" HeaderText="政治" SortExpression="政治" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="历史" HeaderText="历史" SortExpression="历史" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="地理" HeaderText="地理" SortExpression="地理" />
    </columns>
    <columns>
    <asp:boundcolumn  DataField="生物" HeaderText="生物" SortExpression="生物" />
    </columns>
    <columns>
    <asp:boundcolumn DataField="总分2" HeaderText="总分2" SortExpression="总分2" />
    </columns>
    <columns>
       <asp:buttoncolumn CommandName="Delete" Text="删除" HeaderText="命令"/> 
    </columns>
    </asp:datagrid>
      

  9.   

    上面是我写的datagrid
    是学生的成绩单,怎么有问题吗???
      

  10.   

    felixl(★★★★★★) 兄
    你能不能给我一下,你写的好用的例子呀!!谢谢了!!
      

  11.   

    我的代码是公司网站的一部分!
    就是在前台写了一个
    <asp:ImageButton id="toexcel" onclick="toExcel_Click" Runat="server" ImageUrl="../../images/toexcel.gif"></asp:ImageButton>
    后台写的
            Protected Sub toExcel_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
                ToExcel1(tblResults)
            End Sub        Sub ToExcel1(ByVal ctl As System.Web.UI.Control)
                Response.Charset = "GB2312"
                Response.AppendHeader("Content-Disposition", "attachment;filename=totalreport.xls")
                Response.ContentEncoding = System.Text.Encoding.UTF8
                Response.ContentType = "application/ms-excel"            ctl.Page.EnableViewState = False
                Dim tw As System.IO.StringWriter = New System.IO.StringWriter()
                Dim hw As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(tw)            ctl.RenderControl(hw)            Response.Write(tw.ToString())
                Response.End()
            End Sub我导出的是一个table,其他的类似,datagrid也一样!以前曾经做过一个小例子,但机子挂了,C盘东西都没了!:(
      

  12.   

    在调用这个前ctl.RenderControl(hw);  Response.Write(tw.ToString()); 
    Response.End(); 
    ///////////////////////////////////
    this.DataGrid1.Columns.RemoveAt();删除掉这列试试
    <columns>
       <asp:buttoncolumn CommandName="Delete" Text="删除" HeaderText="命令"/> 
    </columns>
      

  13.   

    我刚刚写了个小例子!你如果需要我发给你!我的MSN是[email protected]
      

  14.   

    注意ToExcel1(tblResults)这里!
    一定要把tblResults换成你的datagrid的ID,别写成button的!我觉得你的错误就在这里