using NPOI.HSSF.UserModel;
 using NPOI.POIFS.FileSystem;
 using org.in2bits.MyXls;
 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.IO;
 using System.Linq;
 using System.Text;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using Topevery.Basis.Config;
 using Topevery.Basis.Logic;
 using Topevery.DUM.Entity;

 namespace Topevery.DUM.Report.PublicCaseAnalysis
 {
     public partial class EvtSpread : BasePage
     {
         protected void Page_Load(object sender, EventArgs e)
         {
             if (!this.IsPostBack)
             {
                 //txtStartDate.Text = string.Format("{0}-{1}-1", DateTime.Today.Year, DateTime.Today.Month);
                 //txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Today);
                 txtStartDate.Text = "2015-01-01";
                 txtEndDate.Text = "2016-08-01";
             }

             AjaxPro.Utility.RegisterTypeForAjax(typeof(EvtSpread));
         }

         /// <summary>
         /// 分布统计查询
         /// </summary>
         /// <param name="evtPara"></param>
         /// <returns></returns>
         [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)]
         public static EvtSpreadData GetZxEvtSpreadData(SearchPara evtPara)
         {
             EvtSpreadData result = new EvtSpreadData();

             //1.查出所有数据
             BaseParameter para = new BaseParameter();

             para.PageIndex = ;
             para.PageSize = int.MaxValue;

             string title = "";

             //lblTitle.Text = string.Format("{0:yyyy-MM-01}至{1:MM-dd}{3}专项案件分布统计", DateTime.Today);
             if (!string.IsNullOrEmpty(evtPara.DateBegin))
             {
                 DateTime dtStart = DateTime.Now;
                 if (DateTime.TryParse(evtPara.DateBegin, out dtStart))
                 {
                     title += string.Format("{0:yyyy-MM-dd}—", dtStart);
                     para.BeginDate = dtStart;
                 }
             }

             if (!string.IsNullOrEmpty(evtPara.DateEnd))
             {
                 DateTime dtEnd = DateTime.Now;
                 if (DateTime.TryParse(evtPara.DateEnd, out dtEnd))
                 {
                     title += string.Format("{0:yyyy-MM-dd}", dtEnd);
                     para.EndDate = dtEnd.AddDays().AddSeconds(-);
                 }
             }

             title += "案件分布统计";

             ;
             DataTable dt = QmcgLogic.EvtSearchList(para);
             if (dt != null)
             {
                 recordCount = dt.Rows.Count;
             }

             StringBuilder StrbSprdHtm = new StringBuilder();
             string strTableClass = "TUI-grid-list";
             StrbSprdHtm.AppendFormat("<table class='{0}' ><colgroup ><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>区域</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass);

             //循环各个区域
             Topevery.Basis.Entity.SysMapTreeCollection mapTreeColl = SysMapLogic.GetDefaultTree();
             )
             {
                 foreach (Topevery.Basis.Entity.SysMapTree mapCity in mapTreeColl)
                 {
                     ;
                     //市下面的区循环
                     foreach (Topevery.Basis.Entity.SysMapTree mapDist in mapCity.Child)
                     {
                         iDistCount++;
                         string strDistTrStyle = "ui-widget-content jqgrow ui-row-ltr ui-priority-secondary";
                          == )
                         {
                             strDistTrStyle = "ui-widget-content jqgrow ui-row-ltr";
                         }
                         strDistTrStyle = string.Format("{0} {1}", Topevery.Basis.Config.MapTypeEnum.District, strDistTrStyle);
                         )
                         {
                             //int prbInDistCount = 0;
                             int evtInDistCount = GetEvtCountByMap(dt, mapDist.ID, Topevery.Basis.Config.MapTypeEnum.District);
                             //
                             StrbSprdHtm.AppendFormat("<tr class='{2}' mapId='{3}'><td>{4}</td><td class='AeraName'><a class='TUI-link-btn fl-left' href='javascript:void(0);' onclick='showOrHideStreet(this);'><span class='ui-icon ui-icon-minus'></span></a><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13002)'>{1}</a></td></tr>", mapDist.Name, evtInDistCount, strDistTrStyle, mapDist.ID, iDistCount);

                             )
                             {
                                 StrbSprdHtm.AppendFormat("<tr class='{0}_Out'><td></td><td colspan='2' border='0'>", MapTypeEnum.Street);
                                 StrbSprdHtm.AppendFormat("<table class='{0}'><colgroup ><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>街道</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass);
                                 ;
                                 //循环区下面的街道
                                 foreach (Topevery.Basis.Entity.SysMapTree mapStreet in mapDist.Child)
                                 {
                                     string strStreetStyle = "ui-widget-content jqgrow ui-row-ltr ui-priority-secondary";
                                      == )
                                     {
                                         strStreetStyle = "ui-widget-content jqgrow ui-row-ltr";
                                     }
                                     //int prbInStreetCount = 0;
                                     int evtInStreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street);
                                     )
                                     {
                                         iStreetCount++;
                                         StrbSprdHtm.AppendFormat("<tr class='{2}_Inner {5}' mapId='{3}'><td>{6}</td><td class='AeraName'><a class='TUI-link-btn fl-left' href='javascript:void(0);' onclick='showOrHideCmn(this);'><span class='ui-icon ui-icon-plus'></span></a><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13003)'>{1}</a></td></tr><tr class='{4}_Out' style='display:none'><td></td><td colspan='2'>", mapStreet.Name, evtInStreetCount, MapTypeEnum.Street, mapStreet.ID, MapTypeEnum.Community, strStreetStyle, iStreetCount);
                                         StrbSprdHtm.AppendFormat("<table class='{0}'><colgroup><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>社区</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass);

                                         ;
                                         //循环街道下面的社区
                                         foreach (Topevery.Basis.Entity.SysMapTree mapComn in mapStreet.Child)
                                         {
                                             //int prbInCmnCount = 0;
                                             int evtInCmnCount = GetEvtCountByMap(dt, mapComn.ID, Topevery.Basis.Config.MapTypeEnum.Community);
                                             )
                                             {
                                                 iCmnCount++;
                                                 StrbSprdHtm.AppendFormat("<tr class='{2}_Inner' mapId='{3}'><td>{4}</td><td class='AeraName'><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13004)'>{1}</a></td></tr>", mapComn.Name, evtInCmnCount, MapTypeEnum.Community, mapComn.ID, iCmnCount);
                                             }

                                         }
                                         StrbSprdHtm.Append("</table></td></tr>");
                                     }
                                 }
                                 StrbSprdHtm.Append("</table>");
                             }
                             else
                             {
                                 StrbSprdHtm.AppendFormat("<tr class='{0}_Out' style='display:none;'><td></td><td colspan='2' border='0'>", MapTypeEnum.Street);
                             }
                             StrbSprdHtm.Append("</td></tr>");
                         }
                     }

                     StrbSprdHtm.Append("</table>");

                     StrbSprdHtm.Append("</td></tr>");
                 }
             }

             StrbSprdHtm.Append("</table>");

             result.SprHtmlResult = StrbSprdHtm.ToString();
             result.Title = title;
             //ExportQueryService.SetQueryVal(ExportEnumKey, para);
             foreach (DataRow dr in dt.Rows)
             {
                 try
                 {
                     Evt evt = new Evt();
                     evt.EvtId = Convert.ToInt64(dr["c_id"]);

                     try
                     {
                         evt.AbsX = Convert.ToDouble(dr["c_abs_x"]);

                         evt.AbsY = Convert.ToDouble(dr["c_abs_y"]);
                     }
                     catch { }

                     try
                     {
                         evt.DistId = Convert.ToInt32(dr["c_map_district_id"]);
                         evt.StreetId = Convert.ToInt32(dr["c_map_street_id"]);
                         evt.CmnId = Convert.ToInt32(dr["c_map_community_id"]);
                     }
                     catch { }

                     evt.Title = Convert.ToString(dr["c_title"]);

                     //evt.Status = Convert.ToInt32(dr["c_status"]);

                     result.ListEvt.Add(evt);
                 }
                 catch { }
             }
             return result;

         }

         /// <summary>
         /// 导出excel文件
         /// </summary>
         /// <param name="reportTitle">标题</param>
         /// <param name="dt">数据源</param>
         /// <param name="columns">列名</param>
         /// <param name="filePath">文件路径</param>
         /// <param name="maxRow">一页显示最大记录数</param>
         public static void SingleExport(string reportTitle, string subTitle, DataTable dt, Dictionary<string, string> columns, string filePath, int maxRow)
         {
             int WorkSheetCount = Convert.ToInt32(Math.Ceiling(dt.Rows.Count * 1.0 / maxRow));
             XlsDocument doc = new XlsDocument();
             ; i < WorkSheetCount; i++)
             {
                 Worksheet sheet = doc.Workbook.Worksheets.Add());

                 ;
                 ;
                 int currentMinRowIndex = i * maxRow;
                 ;
                 ) * maxRow + ) < dt.Rows.Count)
                     currentMaxRowIndex = (i + ) * maxRow;
                 else
                     currentMaxRowIndex = dt.Rows.Count;

                 //标题
                 if (!string.IsNullOrEmpty(reportTitle))
                 {
                     rowIndex++;

                     XF cellXF = doc.NewXF();
                     cellXF.VerticalAlignment = VerticalAlignments.Centered;
                     cellXF.HorizontalAlignment = HorizontalAlignments.Centered;
                     cellXF.Font.Height =  * ;
                     cellXF.Font.Bold = true;
                     //cellXF.Pattern = 1;//设定单元格填充风格。如果设定为0,则是纯色填充
                     //cellXF.PatternBackgroundColor = Colors.EgaYellow;//填充的底色
                     //cellXF.PatternColor = Colors.Grey;//设定填充线条的颜色

                     sheet.Cells.Add(rowIndex, , reportTitle, cellXF);
                     MergeArea area = , , , columns.Count);
                     sheet.AddMergeArea(area);
                 }
                 //副标题
                 if (!string.IsNullOrEmpty(subTitle))
                 {
                     rowIndex++;

                     XF cellXF = doc.NewXF();
                     cellXF.VerticalAlignment = VerticalAlignments.Centered;
                     cellXF.HorizontalAlignment = HorizontalAlignments.Centered;

                     sheet.Cells.Add(rowIndex, , subTitle, cellXF);
                     MergeArea area = , , , columns.Count);
                     sheet.AddMergeArea(area);
                 }

                 //列头标题
                 rowIndex++;
                 foreach (string colTitle in columns.Values)
                 {
                     colIndex++;

                     XF cellXF = doc.NewXF();
                     cellXF.VerticalAlignment = VerticalAlignments.Centered;
                     cellXF.HorizontalAlignment = HorizontalAlignments.Centered;
                     cellXF.Font.Bold = true;
                     cellXF.Pattern = ;//设定单元格填充风格。如果设定为0,则是纯色填充
                     cellXF.PatternBackgroundColor = Colors.Grey;//填充的底色

                     cellXF.TopLineColor = Colors.Black;
                     cellXF.TopLineStyle = ;
                     cellXF.BottomLineColor = Colors.Black;
                     cellXF.BottomLineStyle = ;
                     cellXF.LeftLineColor = Colors.Black;
                     cellXF.LeftLineStyle = ;
                     cellXF.RightLineColor = Colors.Black;
                     cellXF.RightLineStyle = ;

                     sheet.Cells.Add(rowIndex, colIndex, colTitle, cellXF);

                 }

                 //数据行
                 for (int j = currentMinRowIndex; j < currentMaxRowIndex; j++)
                 {
                     rowIndex++;
                     colIndex = ;

                     XF cellXF = doc.NewXF();
                     cellXF.VerticalAlignment = VerticalAlignments.Centered;
                     cellXF.HorizontalAlignment = HorizontalAlignments.Centered;

                     cellXF.TopLineColor = Colors.Black;
                     cellXF.TopLineStyle = ;
                     cellXF.BottomLineColor = Colors.Black;
                     cellXF.BottomLineStyle = ;
                     cellXF.LeftLineColor = Colors.Black;
                     cellXF.LeftLineStyle = ;
                     cellXF.RightLineColor = Colors.Black;
                     cellXF.RightLineStyle = ;

                     foreach (string colName in columns.Keys)
                     {
                         colIndex++;
                         object v = dt.Rows[j][colName];
                         if (v is Int32 || v is Int16 || v is Int64 || v is Double || v is Single)
                         {
                             sheet.Cells.Add(rowIndex, colIndex, v == null || v == DBNull.Value ? "" : v, cellXF);
                         }
                         else
                         {
                             sheet.Cells.Add(rowIndex, colIndex, v == null || v == DBNull.Value ? "" : v.ToString(), cellXF);
                         }
                     }
                 }
             }

             doc.FileName = Guid.NewGuid().ToString() + ".xls";
             if (!string.IsNullOrEmpty(filePath))
             {
                 doc.Save(filePath);
             }
             else
             {

                 string folder = HttpContext.Current.Server.MapPath("~/Templates");

                 try
                 {
                     foreach (string file in System.IO.Directory.GetFiles(folder))
                     {
                         System.IO.FileInfo fi = new System.IO.FileInfo(file);
                         )
                         {
                             System.IO.File.Delete(file);
                         }
                     }
                 }
                 catch { }
                 doc.Save(folder);
                 System.Web.HttpContext.Current.Response.WriteFile("~/Templates/" + doc.FileName);
             }
         }

         public const string ExportEnumKey = ExportKey.Regional;

         public static int GetEvtCountByMap(DataTable evtData, int mapId, Topevery.Basis.Config.MapTypeEnum mapType)
         {
             //prbCount = 0;
             try
             {
                 string filter = "";
                 switch (mapType)
                 {
                     case MapTypeEnum.District:
                         filter = string.Format("[c_map_district_id]={0}", mapId);
                         break;
                     case MapTypeEnum.Street:
                         filter = string.Format("[c_map_street_id]={0}", mapId);
                         break;
                     case MapTypeEnum.Community:
                         filter = string.Format("[c_map_community_id]={0}", mapId);
                         break;
                 }

                 //object oPrbCount = evtData.Compute("sum([c_count])", filter);
                 //try
                 //{
                 //    prbCount = Convert.ToInt32(oPrbCount);
                 //}
                 //catch { }
                 return evtData.Select(filter).Length;
             }
             catch { }

             ;
         }

         protected void Download_Click(object sender, EventArgs e)
         {

             ;
             BaseParameter para = new BaseParameter();
             string title = "";
             if (!string.IsNullOrEmpty(txtStartDate.Text))
             {
                 DateTime dtStart = DateTime.Now;
                 if (DateTime.TryParse(txtStartDate.Text, out dtStart))
                 {
                     title += string.Format("{0:yyyy-MM-dd}—", dtStart);
                     para.BeginDate = dtStart;
                 }
             }
             if (!string.IsNullOrEmpty(txtEndDate.Text))
             {
                 DateTime dtEnd = DateTime.Now;
                 if (DateTime.TryParse(txtEndDate.Text, out dtEnd))
                 {
                     title += string.Format("{0:yyyy-MM-dd}", dtEnd);
                     para.EndDate = dtEnd.AddDays().AddSeconds(-);
                 }
             }
             DataTable dt = QmcgLogic.EvtSearchList(para);
             if (dt != null)
             {
                 recordCount = dt.Rows.Count;
             }
             List<string> subTitles = new List<string>();
             Dictionary<string, string> cols = new Dictionary<string, string>();
             DataTable dtnew = new DataTable("casetable");
             dtnew.Columns.Add(new DataColumn("Id", typeof(Int32)));
             dtnew.Columns.Add(new DataColumn("Region", typeof(string)));
             dtnew.Columns.Add(new DataColumn("CaseNumber", typeof(Int32)));
             dtnew.Columns.Add("c_level");
             dtnew.Columns.Add("c_parent_id");
             DataRow dr;
             Topevery.Basis.Entity.SysMapTreeCollection mapTreeColl = SysMapLogic.GetDefaultTree();
             )
             {

                 foreach (Topevery.Basis.Entity.SysMapTree mapCity in mapTreeColl)
                 {
                     ;
                     ;
                     //市下面的区循环
                     foreach (Topevery.Basis.Entity.SysMapTree mapDist in mapCity.Child)
                     {
                         id++;
                         iDistCount++;
                         )
                         {
                             //区域案件数
                             int evtInDistCount = GetEvtCountByMap(dt, mapDist.ID, Topevery.Basis.Config.MapTypeEnum.District);
                             dr = dtnew.NewRow();
                             dr["Id"] = mapDist.ID;
                             dr["Region"] = mapDist.Name;
                             dr["CaseNumber"] = evtInDistCount;
                             dr[;
                             dr[;
                             dtnew.Rows.Add(dr);
                             //街道
                             ;
                             )
                             {
                                 foreach (Topevery.Basis.Entity.SysMapTree mapStreet in mapDist.Child)
                                 {
                                     id++;
                                     iStreetCount++;
                                     //案件数
                                     int StreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street);
                                     dr = dtnew.NewRow();
                                     dr["Id"] = mapStreet.ID;
                                     //dr["Id"] = iStreetCount;
                                     dr["Region"] = mapStreet.Name;
                                     dr["CaseNumber"] = StreetCount;
                                     dr[;
                                     dr["c_parent_id"] = mapDist.ID;
                                     dtnew.Rows.Add(dr);
                                     //社区
                                     int evtInStreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street);
                                     )
                                     {
                                         ;
                                         foreach (Topevery.Basis.Entity.SysMapTree mapComn in mapStreet.Child)
                                         {
                                             //案件数
                                             int evtInCmnCount = GetEvtCountByMap(dt, mapComn.ID, Topevery.Basis.Config.MapTypeEnum.Community);
                                             )
                                             {
                                                 id++;
                                                 iCmnCount++;
                                                 dr = dtnew.NewRow();
                                                 dr["Id"] = mapComn.ID;
                                                 //dr["Id"] = iCmnCount;
                                                 dr["Region"] = mapComn.Name;
                                                 dr["CaseNumber"] = evtInCmnCount;
                                                 dr[;
                                                 dr["c_parent_id"] = mapStreet.ID;
                                                 dtnew.Rows.Add(dr);
                                                 Dictionary<string, string> CaseColumns = new Dictionary<string, string>();
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 //-----------------------
                 string filePath = System.IO.Path.Combine(Request.PhysicalApplicationPath, "tempFolder");
                 filePath = System.IO.Path.Combine(filePath, Guid.NewGuid().ToString() + ".xls");
                 HSSFWorkbook hssfWorkBook = new HSSFWorkbook();
                 HSSFSheet sheet1 = hssfWorkBook.CreateSheet("Sheet1") as HSSFSheet;
                 using (FileStream file = new FileStream(filePath, FileMode.Create))
                 {
                     hssfWorkBook.Write(file);
                 }
                 HSSFCellStyle _style = sheet1.Workbook.CreateCellStyle() as HSSFCellStyle;
                 _style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
                 _style.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;

                 _style.BorderBottom = NPOI.SS.UserModel.CellBorderType.THIN;
                 _style.BottomBorderColor = ;

                 _style.BorderLeft = NPOI.SS.UserModel.CellBorderType.THIN;
                 _style.LeftBorderColor = ;

                 _style.BorderRight = NPOI.SS.UserModel.CellBorderType.THIN;
                 _style.RightBorderColor = ;

                 _style.BorderTop = NPOI.SS.UserModel.CellBorderType.THIN;
                 _style.TopBorderColor = ;
                 DataRow[] drDists = dtnew.Select("c_level=1");
                  sheet1.CreateRow();
                  HSSFCell cell1 = sheet1.GetRow().CreateCell() as HSSFCell;
                  HSSFCell cell2 = sheet1.GetRow().CreateCell() as HSSFCell;
                  HSSFCell cell3 = sheet1.GetRow().CreateCell() as HSSFCell;
                  cell1.SetCellValue("序号");
                  cell2.SetCellValue("区域");
                  cell3.SetCellValue("案件数");

                 foreach (DataRow drDist in drDists)
                 {
                     WriteExcelDataRowX(sheet1, dtnew, drDist, _style);
                 }

                 using (MemoryStream ms = new MemoryStream())
                 {
                     hssfWorkBook.Write(ms);
                     Response.Charset = "utf-8";
                     Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                     string titleString = string.Empty;
                     )
                     {
                         titleString = "\"" + "区域案件分布统计表" + ".xls\"";
                         Response.AddHeader("Content-Disposition", "attachment;filename=" + titleString);
                     }
                     else
                     {
                         Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", System.Web.HttpUtility.UrlEncode("区域案件分布统计表", System.Text.Encoding.UTF8) + ".xls"));
                     }
                     Response.BinaryWrite(ms.ToArray());

                     Response.End();
                 }

                 //********************************************************************************************************

             }
         }

         void WriteExcelDataRowX(HSSFSheet sheet, DataTable allData, DataRow row, HSSFCellStyle style)
         {
             //NPOI向单元格写入值
             //从此二行创建
             ;
             sheet.CreateRow(rowIndex);

             ; i <= ; i++)
             {
                 //HSSFCell cell1 = sheet.GetRow(rowIndex).CreateCell(i) as HSSFCell;
                 //if (i == 0)
                 //{
                 //    cell1.SetCellValue("序号");
                 //}
                 //else if (i == 1)
                 //{
                 //    cell1.SetCellValue("区域");
                 //}
                 //else
                 //{
                 //    cell1.SetCellValue("案件数");
                 //}
                 HSSFCell cell = sheet.GetRow(rowIndex).GetCell(i) as HSSFCell;

                 if (cell == null)
                 {
                     cell = sheet.GetRow(rowIndex).CreateCell(i) as HSSFCell;

                 }
                 cell.CellStyle = style;
                 )
                 {
                     //序号
                     cell.SetCellValue(Helper.GetDataValue(rowIndex, string.Empty));
                 }
                 )
                 {
                     //区域
                     cell.SetCellValue(Helper.GetDataValue(row["Region"], string.Empty));
                 }
                 else
                 {
                     //案件数
                     cell.SetCellValue(Helper.GetDataValue(row["CaseNumber"], string.Empty));
                 }

             }

             //next level
             DataRow[] childData = allData.Select(string.Format("[c_parent_id]={0}", row["Id"]));

             )
             {
                 int curIndex = sheet.LastRowNum;
                 foreach (DataRow childRow in childData)
                 {
                     WriteExcelDataRowX(sheet, allData, childRow, style);
                 }
                 sheet.GroupRow(curIndex + , sheet.LastRowNum);
             }
         }
     }

     [Serializable]
     [AjaxPro.AjaxNoTypeUsage]
     public class SearchPara
     {
         public string DateBegin;
         public string DateEnd;
         //public string EvtStatus;
         //public int TaskId = 0;
     }

     [Serializable]
     [AjaxPro.AjaxNoTypeUsage]
     public class EvtSpreadData
     {
         public List<Evt> ListEvt = new List<Evt>();

         public string SprHtmlResult = "";
         public string Title = "";
     }

     [Serializable]
     [AjaxPro.AjaxNoTypeUsage]
     public class Evt
     {
         public long EvtId;

         public double AbsX;

         public double AbsY;

         public string Title;

         public int DistId;
         public int StreetId;
         public int CmnId;

         //public int Status = 0;

         //public int FirstAttachType = -1;

         //public string PicGUID;

         //public string Html;
     }

 }

NPOI分层导出的更多相关文章

  1. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  2. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  3. PhotoshopCS4轻松将PSD分层导出为Png分层

    大家在网上都下载过PSD分层素材,有时候想把素材分层导出,以往做法是一层一层导出,可是这样效率太低,其实利用PS自带功能可以轻松导出PNG分层.     我们先打开一个PSD文件. 文件有7个图层,分 ...

  4. NPOI导入导出Excel

    .net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交  代码:  第一步. 在页面里面加入2个隐藏的iframe, 如下 ...

  5. NET使用NPOI组件导出Excel-入门示例及通用方法

    一.Excel导入及导出问题产生:   从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:   导出问题:   如果是as ...

  6. .Net core NPOI导入导出Excel

    最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...

  7. 简单回顾NPOI导入导出excel文件

    当前环境.net4.0 去官方下下载:  NOPI官网 关于NOPI的详细,这里就不再介绍. 在项目中,我们只需引入  NPOI.dll  就可以了. 接下来..................... ...

  8. c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出

    将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...

  9. Npoi导入导出Excel操作

    之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...

随机推荐

  1. Java class,Object,Class的区别

    代码: http://www.cnblogs.com/hongdada/p/6060487.html package com.company; public class Main { public s ...

  2. javascript的缓动效果

    这部分对原先的缓动函数进行抽象化,并结合缓动公式进行强化.成品的效果非常惊人逆天.走过路过不要错过. 好了,打诨到此为止.普通的加速减速是难以让人满意的,为了实现弹簧等让人眼花缭乱的效果必须动用缓动公 ...

  3. github Android-Universal-Image-Loader

    目存在于Github上面https://github.com/nostra13/Android-Universal-Image-Loader,我们可以先看看这个开源库存在哪些特征 多线程下载图片,图片 ...

  4. paper 123: SVM如何避免过拟合

    过拟合(Overfitting)表现为在训练数据上模型的预测很准,在未知数据上预测很差.过拟合主要是因为训练数据中的异常点,这些点严重偏离正常位置.我们知道,决定SVM最优分类超平面的恰恰是那些占少数 ...

  5. maven创建的Web工程,Eclipse 内 tomcat容器不识别的处理方法

    相信很多人都遇到这个问题,简单的说明下处理方式 前提是maven配置都是ok的,这里不多说了 1.创建web工程 mvn archetype:create -DgroupId=com.XXX.YYY ...

  6. C/C++之指针加减法

    C和C++中可对指针进行加减,但对其进行乘除则基本无实际意义.一般来说,对指针进行减法的前提是减数和被减数均指向同一数组.加法同理.需要注意的是,两个指针的减法,结果是两个地址之间索引变量的数目,而不 ...

  7. 【转】Python练习,网络爬虫框架Scrapy

    一.概述 下图显示了Scrapy的大体架构,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示).下面就来一个个解释每个组件的作用及数据的处理过程. 二.组件 1.Scrapy Engine(S ...

  8. 使用自定义签名的https的ssl安全问题解决和metro的webservice调用

    最近一直在忙新的项目,每天加班到8点多,都没来写博客了.新的项目遇到了很多问题,现在趁着突然停电来记录下调用https的问题吧. 我们服务主要是,我们调用数据源数据,并且再提供接口供外部数据调用. 我 ...

  9. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  10. mybatis,Spring等工具对xml文件正确性的验证

    我们知道mybatis或者spring都是使用xml文件作为配置文件,配置文件的格式都是定义在叫做.dtd或者.xsd文件中的,当工具在解析用户自己定义的xml文件的时候,如何才能知道用户自定义的文件 ...