62,243
社区成员




public ActionResult DataTableToExcel()
{
string OpeOrder = Request.QueryString["Ord"];
int OpeOrderStatus = Convert.ToInt32(Request.QueryString["Status"]);
string OpeOrderMemName = Request.QueryString["Name"];
string OpeOrderMemEmail = Request.QueryString["Email"];
string StartTime = Request.QueryString["StartTime"];
string EndTime = Request.QueryString["EndTime"];
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
IList<Order> Orders = null;
//Orders = orderDao.SelectAllOrder();
Orders = orderDao.SelectByTime(new Order { StartTime = StartTime, EndTime = EndTime });
OrderHelper orderHelper = new OrderHelper();
string MembersId = orderHelper.MemberIdsByOrder(Orders);
IList<Member> members = memberDao.SelectByMemberOrderIds(MembersId);
members = memberDao.SelectByMember(new Member { _Mem_UserName = OpeOrderMemName, _Mem_Email = OpeOrderMemEmail });
MemberHelper memberHelper = new MemberHelper();
string Ope_Ids = memberHelper.OperatorIdsByMember(members);
IList<Operator> operates = operatorDao.SelectByMem_Ids(Ope_Ids);
members = members.Join(operates, m => m.Mem_Ope_Id, o => o.Ope_Id, (m, o) => { m.Ope_Name = o.Ope_Name; return m; }).ToList();
//先查询Member表,根据Mem_Id得到Ope_Id,然后根据Ope_Id查询tb_Operator表得到Ope_Name
Orders = Orders.Join(members, o => o.Ord_Mem_Id, m => m.Mem_Id, (o, m) => { o.Ord_MemUserName = m.Mem_UserName; o.Ord_Mem_Email = m.Mem_Email; o.Ope_Name = m.Ope_Name; return o; }).ToList();
string filename = DateTime.Now.Month + "_" + DateTime.Now.Day + "_" + DateTime.Now.Hour + "_" + DateTime.Now.Minute;
byte[] str = null;
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "UTF-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
string _str = "";
if (Orders.Count > 0)
{
_str = "<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\"><br/>";
_str += "<tr><td>订单编号</td><td>订单金额</td><td>会员名字</td><td>会员邮箱</td><td>操作员</td><td>添加时间</td><td>订单状态</td></tr><br/>";
foreach (var order in Orders)
{
_str += "<tr><td>" + order.Ord_Id + "</td><td>" + order.Ord_TotalAmount + "</td><td>" + order.Ord_MemUserName + "</td><td>" + order.Ord_Mem_Email + "</td><td>" + order.Ope_Name + "</td><td>" + order.AddDate + "</td><td>" + (OrderStatus)order.Ord_Status + "</td></tr><br/>";
}
_str += "</table>";
// 返回客户端
}
else
{
_str = "<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\"><br/>";
_str += "<tr><td>订单编号</td><td>订单金额</td><td>会员名字</td><td>会员邮箱</td><td>操作员</td><td>添加时间</td><td>订单状态</td></tr><br/>";
_str += "</table>";
}
str = System.Text.Encoding.UTF8.GetBytes(_str.ToString());
return File(str, "attachment;filename=" + filename + ".xls");
}
#region 写文件
/****************************************
* 函数名称:WriteFile
* 功能说明:当文件不存时,则创建文件,并追加文件
* 参 数:Path:文件路径,Strings:文本内容
* 调用示列:
* string Path = Server.MapPath("Default2.aspx");
* string Strings = "这是我写的内容啊";
* FileOperate.WriteFile(Path,Strings);
*****************************************/
/// <summary>
/// 写文件
/// </summary>
/// <param name="Path">文件路径</param>
/// <param name="Strings">文件内容</param>
public static void WriteFile(string Path, string Strings)
{
if (!System.IO.File.Exists(Path))
{
System.IO.FileStream f = System.IO.File.Create(Path);
f.Close();
f.Dispose();
}
System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);
f2.WriteLine(Strings);
f2.Close();
f2.Dispose();
}
#endregion