当前位置:编程学习 > C#/ASP.NET >>

在线等,excel导出问题

帮忙看看,什么问题,服务器已经安装了office了。

--------------------编程问答-------------------- --------------------编程问答-------------------- 参考http://www.cnblogs.com/qxw0816/archive/2011/05/26/2058986.html

--------------------编程问答--------------------
引用 2 楼 Chinajiyong 的回复:
参考http://www.cnblogs.com/qxw0816/archive/2011/05/26/2058986.html

建议不要用office组件来导出,配置复杂,安全性不高,
你可以考虑用NPOI组件 --------------------编程问答--------------------
引用 3 楼 Chinajiyong 的回复:
Quote: 引用 2 楼 Chinajiyong 的回复:

参考http://www.cnblogs.com/qxw0816/archive/2011/05/26/2058986.html

建议不要用office组件来导出,配置复杂,安全性不高,
你可以考虑用NPOI组件


这个方法已经用过了,还是不行,本来其他的装上就可以,不知道怎么这台服务器装上却不行。 --------------------编程问答--------------------
引用 4 楼 caichunjia 的回复:
Quote: 引用 3 楼 Chinajiyong 的回复:

Quote: 引用 2 楼 Chinajiyong 的回复:

参考http://www.cnblogs.com/qxw0816/archive/2011/05/26/2058986.html

建议不要用office组件来导出,配置复杂,安全性不高,
你可以考虑用NPOI组件


这个方法已经用过了,还是不行,本来其他的装上就可以,不知道怎么这台服务器装上却不行。

估计还缺少配置把, --------------------编程问答-------------------- Refer:
http://www.cnblogs.com/insus/archive/2013/01/16/2862121.html
http://www.cnblogs.com/insus/articles/1400266.html

下面链接是图片导出至Excel:http://www.cnblogs.com/insus/archive/2013/05/14/3077826.html --------------------编程问答--------------------

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,