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(" "," ");
}
}
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());
}
}
{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(" "," ");
}
}
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());
}
}
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我一直这样实现的!屡试不爽
<asp:button ID="??" runat="server" Text="打印当前数据" runat="server" OnClick="??" />
{
//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(); }
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: BC30408: 方法“Protected Sub toExcel_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs)”没有与委托“Delegate Sub EventHandler(sender As Object, e As System.EventArgs)”相同的签名。请问这是怎么回事呀!!!
类型“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())
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>
是学生的成绩单,怎么有问题吗???
你能不能给我一下,你写的好用的例子呀!!谢谢了!!
就是在前台写了一个
<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盘东西都没了!:(
Response.End();
///////////////////////////////////
this.DataGrid1.Columns.RemoveAt();删除掉这列试试
<columns>
<asp:buttoncolumn CommandName="Delete" Text="删除" HeaderText="命令"/>
</columns>
一定要把tblResults换成你的datagrid的ID,别写成button的!我觉得你的错误就在这里