RT
html中的table是我在后台write出来的,直接写的整个table,不存在有什么runnat属性。
求助怎么能把这个table中的内容导出到excel文件。最好是能把table的合并的单元格样式也一样导出来。
cs文件中写导出或者用JS导出都可以。
急呀。。
求帮助啊
不要网上去复制粘贴网上那些都带自己的其他类的方法,然后还没有这个类 = =
html中的table是我在后台write出来的,直接写的整个table,不存在有什么runnat属性。
求助怎么能把这个table中的内容导出到excel文件。最好是能把table的合并的单元格样式也一样导出来。
cs文件中写导出或者用JS导出都可以。
急呀。。
求帮助啊
不要网上去复制粘贴网上那些都带自己的其他类的方法,然后还没有这个类 = =
/// 导出到Excel
///</summary>
protected void lbtnExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "gb2312";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
if (null != ViewState["order"])
{
_Order = ViewState["order"].ToString();
}
if (null != ViewState["Where"])
{
_Where = ViewState["Where"].ToString();
} System.Data.DataSet dsRoles = updateProvide.Provider.GetAllExcelMang(_Where, _Order); if (dsRoles == null || dsRoles.Tables[0].Rows.Count == 0)
return; ViewState["ds"] = dsRoles.Tables[0]; System.Data.DataTable dv = (System.Data.DataTable)ViewState["ds"];
string xls = @"<Table border='1'><TR>";
int i;
int j;
for (i = 0; i < dv.Columns.Count; i++)
{
xls += @"<TD>" + dv.Columns[i].Caption + @"</TD>"; }
xls = xls + @"</TR>";
for (i = 0; i < dv.Rows.Count; i++)
{
xls = xls + @"<TR>";
for (j = 0; j < dv.Columns.Count; j++)
{
xls = xls + @"<TD>" + dv.Rows[i][j].ToString() + @"</TD>";
}
xls = xls + @"</TR>";
}
xls = xls + @"</Table>";
Response.Write(xls); //stringWrite.ToString());
Response.End();
dsRoles.Clear();
dsRoles.Dispose(); }
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
public void Export(string FileType, string FileName)
{
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Repeater1.RenderControl(hw);
//this.Page.RenderControl(hw);
string str = hw.InnerWriter.ToString();
Response.Write(sw.ToString());
Response.End();
}
_Order、_Where 定义还有updateProvide.Provider.GetAllExcelMang(_Where, _Order);方法也给带出来么。。
<table border=1>
<tr>...</tr>
...
</table>
可以用CSS
Response.AddHeader("content-disposition", "attachment;filename=TongJi" + Common.PublicCommon.returnTime().ToString("yyyy-MM-dd") + ".xls");
Response.Charset = "utf-8";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
System.Web.UI.HtmlControls.HtmlTable newtable = new HtmlTable();
newtable = (HtmlTable)this.div_tab.FindControl("Table1");
newtable.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();