导出exl 问题
请问大家 怎么把大标题写在第一行默认调整有效期申请,
第二行标题是从GridView 导出来的。
想导出的结果如下
第一行为大标题:调整有效期申请
第二行为小标题:人员编号 姓名 ......
第三行为数据 001 张沙 ......
.................................
................................. --------------------编程问答--------------------
--------------------编程问答-------------------- 楼上的可以,也可以自己用excel类来输出 --------------------编程问答-------------------- 楼主还要设置Excel的样式啊? --------------------编程问答-------------------- mark 等下我也要做 --------------------编程问答--------------------
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="dtData"></param>
public static void DataTableToExcel(System.Data.DataTable dtData, String fileName)
{
System.Web.UI.WebControls.DataGrid datagrid = new System.Web.UI.WebControls.DataGrid();
datagrid.ID = "excelGrid1";
datagrid.DataSource = dtData;
datagrid.DataBind();
string filename = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(fileName + ".xls"));
//导出
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.Charset = "UTF-8"; //GB2312
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
//设置输出流为UTF-8
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
//设置输出文件类型为excel文件。
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
datagrid.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
datagrid.RenderControl(oHtmlTextWriter);
System.Web.HttpContext.Current.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>");
System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString());
System.Web.HttpContext.Current.Response.End();
}
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");
}
自己拼凑字符串
补充:.NET技术 , ASP.NET