string cmd = (string)Common.sink("cmd", MethodType.Get, 255, 0, DataType.Str);
protected void Page_Load(object sender, EventArgs e)
{
if (cmd == "DownLoad")
{
DownXslFile();
}
}
/// <summary>
/// 导出Excel文档
/// </summary>
protected void DownXslFile()
{
System.IO.StringWriter sw = new System.IO.StringWriter();
Server.Execute("report.aspx?cmd=ssss", sw, false);
string abcd = sw.ToString();
string fileName = "考勤报表_" + DateTime.Now.Date.ToString("yyyyMMdd") + ".xls";
//Response.Headers.Clear();
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName));
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";
Response.Write(abcd.ToString());
Response.End();
}
发现生成的文件内容为空.
后来将string cmd = (string)Common.sink("cmd", MethodType.Get, 255, 0, DataType.Str); 放入page_load方法中才成功.
如下:
protected void Page_Load(object sender, EventArgs e)
{
string cmd = (string)Common.sink("cmd", MethodType.Get, 255, 0, DataType.Str);
if (cmd == "DownLoad")
{
DownXslFile();
}
}