zoukankan      html  css  js  c++  java
  • 列表导出为Excel(市拆项目房源信息统计模块)

    #region RoomReportObjectDataSource
            /// <summary>
            /// 返回数据的结构体
            /// </summary>
            public struct ROOMREPORT
            {
                public string BLOCK_NAME { get; set; }//楼名
                public string ROOM_NO { get; set; }//房间号
                public string SETTLE { get; set; }//是否安置
                public int? CHECK_NO { get; set; }//选房顺序号
                public string DOCUMENT_NUM { get; set; }//档案号
                public string OWNER_NAME { get; set; }//产权人
                public string CONFIRMER_NAME { get; set; }//确权人
                public string RESIDENT_NAME { get; set; }//使用人
            }
            public int count;
            [DataObjectMethod(DataObjectMethodType.Select, true)]
            public IEnumerable Get_Data(int startIndex, int pageSize, long gr_id, long type_id, long block_id, string settle, string sortDirection, string sortColumn)
            {
                DataClassesDataContext db = DataClassesDataContext.Default;           
                List<T_ROOM> rooms = db.T_ROOM.Where(r => r.T_BLOCK.T_GROUND_RATIO.GR_ID == gr_id && r.T_BLOCK.U_ID == type_id && r.ROOM_NO!=null).ToList();
                if (block_id != 0)
                {
                    rooms = rooms.Where(r => r.BLOCK_ID == block_id).ToList();
                }
                if (settle != "0")
                {
                    if (settle == "1")
                    {
                        rooms = rooms.Where(r => r.FAMILY_ID != null).ToList();
                    }
                    else
                    {
                        rooms = rooms.Where(r => r.FAMILY_ID == null).ToList();
                    }
                }
                List<ROOMREPORT> roomreports = new List<ROOMREPORT>();
                foreach (var item in rooms)
                {
                    ROOMREPORT roomreport = new ROOMREPORT();
                    roomreport.BLOCK_NAME = item.T_BLOCK.BLOCK_NAME;
                    roomreport.ROOM_NO = item.ROOM_NO;
                    roomreport.SETTLE = item.FAMILY_ID == null ? "未安置" : "已安置";
                    if (item.FAMILY_ID != null)
                    {
                        roomreport.CHECK_NO = item.T_MOVE_FAMILY.CHECK_NO;
                        roomreport.DOCUMENT_NUM = item.T_MOVE_FAMILY.DOCUMENT_NUM;
                        roomreport.OWNER_NAME = item.T_MOVE_FAMILY.OWNER_NAME;
                        roomreport.RESIDENT_NAME = item.T_MOVE_FAMILY.RESIDENT_NAME;
                        roomreport.CONFIRMER_NAME = item.T_MOVE_FAMILY.CONFIRMER_NAME;
                    }
                    roomreports.Add(roomreport);
                }
                count = roomreports.Count;
                
                if (sortDirection == "ASC")
                {
                    roomreports = roomreports.OrderBy(r => GetPropertyValue(r,sortColumn)).ToList();
                }
                else
                {
                    roomreports = roomreports.OrderByDescending(r =>GetPropertyValue(r,sortColumn)).ToList();
                }
                datastring = RoomReportString(roomreports);
                return roomreports.Skip(startIndex).Take(pageSize).ToArray();
            }
    
            public int Get_Count(long gr_id, long type_id, long block_id, string settle,string sortDirection, string sortColumn)
            {
                return count;
            }
    
            /// <summary>
            /// 返回table,用于导出excel
            /// </summary>
            public static string datastring
            {
                get;
                set;
            }
    
            /// <summary>
            /// 返回table,用于导出excel
            /// </summary>
            /// <param name="rms"></param>
            /// <returns></returns>
            public string RoomReportString(List<ROOMREPORT> rms)
            {
                StringBuilder sb = new StringBuilder();
    
                sb.Append("<table cellspacing="0" rules="all" border="1" style="border-collapse:collapse;">");
    
                sb.Append("<tr>");
    
                sb.AppendFormat("<td>{0}</td>", "楼号");
                sb.AppendFormat("<td>{0}</td>", "房间号");
                sb.AppendFormat("<td>{0}</td>", "是否安置");
                sb.AppendFormat("<td>{0}</td>", "选房顺序号");
                sb.AppendFormat("<td>{0}</td>", "档案号");
                sb.AppendFormat("<td>{0}</td>", "产权人");
                sb.AppendFormat("<td>{0}</td>", "确权人");
                sb.AppendFormat("<td>{0}</td>", "使用人");
                sb.Append("</tr>");
                foreach (var item in rms)
                {
                    sb.Append("<tr>");
                   
                    sb.AppendFormat("<td>{0}</td>", item.BLOCK_NAME);
                    sb.AppendFormat("<td>{0}</td>", item.ROOM_NO);
                    sb.AppendFormat("<td>{0}</td>", item.SETTLE);
                    sb.AppendFormat("<td>{0}</td>", item.CHECK_NO);
                    sb.AppendFormat("<td>{0}</td>", item.DOCUMENT_NUM);
                    sb.AppendFormat("<td>{0}</td>", item.OWNER_NAME);
                    sb.AppendFormat("<td>{0}</td>", item.CONFIRMER_NAME);
                    sb.AppendFormat("<td>{0}</td>", item.RESIDENT_NAME);
                    sb.Append("</tr>");
                }
                sb.Append("</table>");
    
                return sb.ToString();
            }
            /// <summary>
            /// 反射,动态进行orderby操作   翁皓文  2013年4月26
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="property"></param>
            /// <returns></returns>
            private static object GetPropertyValue(object obj, string property)
            {
                System.Reflection.PropertyInfo propertyInfo = obj.GetType().GetProperty(property);
                return propertyInfo.GetValue(obj, null);
            } 
            #endregion

    前台导出按钮事件:

     protected void Button1_Click(object sender, EventArgs e)
            {
                Response.ClearContent();
                Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
                Response.ContentType = "application/excel";
                Response.Write(RoomListManager.datastring);
                Response.End();
            }
  • 相关阅读:
    ubuntu分屏终端
    Xcode-5.1.1更改文件盯作者
    Swift——(两)Swift访问元组
    Android Loader使用,屏幕解锁,重复荷载
    医疗信息季节:第二十三届中国国际医疗仪器设备展览会暨研讨会 思考
    UIBarButtonItem 小记边
    L轻松学习inux教程5 知识与学习bash
    Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
    Android Context 上下文 你必须知道的一切
    Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
  • 原文地址:https://www.cnblogs.com/wenghaowen/p/3246296.html
Copyright © 2011-2022 走看看