在一个项目中发现一个很好用的导出文档的方法
比较老的技术了,胜在代码简洁.在这里记录一下
这个适用于Datagrid控件,其他控件可能不兼容
Response.Clear();
Response.Buffer= true;
Response.Charset=“utf-8”; // 字符集根据浏览器选择
Response.AppendHeader(“Content-Disposition”,“attachment;filename=WMS-”+System.DateTime.Now.ToFileTime().ToString()+".xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding(“utf-8”); //// 字符集根据浏览器选择
Response.ContentType = “application/ms-excel”;
EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter
= new System.Web.UI.HtmlTextWriter(oStringWriter);
DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
这个适用于GrdiView控件,其他控件可能不兼容
Response.Expires = 0; //清除緩存
Response.Clear();
Response.Buffer = true;
Response.Charset = “utf-8”;
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=備案明細.xls");
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
Response.Write("<Table borderColor=black border=1>");
Response.Write("\n <TR>");
for (int i = 0; i < tColumnCount; i++)
{
Response.Write("\n <TD bgcolor = #fff8dc>");
Response.Write(ds.Tables[0].Columns[i].Caption);
Response.Write("\n </TD>");
}
Response.Write("\n </TR>");
for (int j = 0; j < tRowCount; j++)
{
Response.Write("\n <TR>");
for (int k = 0; k < tColumnCount; k++)
{
Response.Write("\n <TD align=\"right\" style='vnd.ms-excel.numberformat:@'>");
Response.Write(ds.Tables[0].Rows[j][k].ToString());
Response.Write("\n </TD>");
}
Response.Write("\n </TR>");
}
Response.Write("</Table>");
Response.End();
ds.Dispose();