Beispiel #1
0
 public FileResult AlarmEditExoprt(FilterForAlarmEdit filter)
 {
     using (ANDONEntities entities = new ANDONEntities())
     {
         var alarm_edits = entities.Alarm_edit.Where(t => t.Delete_flag == false);;
         if (filter.Start_time != null && filter.End_time != null)
         {
             DateTime startTime = Convert.ToDateTime(filter.Start_time);
             DateTime endTime   = Convert.ToDateTime(filter.End_time);
             alarm_edits = alarm_edits.Where(t => t.Start_time >= startTime && t.Start_time <= endTime);
         }
         //var s = alarm_edits.ToList();
         if (!String.IsNullOrEmpty(filter.Alarm_class) && !(filter.Alarm_class == "全部"))
         {
             alarm_edits = alarm_edits.Where(t => t.Alarm_class == filter.Alarm_class);
         }
         if (!String.IsNullOrEmpty(filter.Alarm_area) && !(filter.Alarm_area == "全部"))
         {
             alarm_edits = alarm_edits.Where(t => t.Alarm_area == filter.Alarm_area);
         }
         alarm_edits = alarm_edits.OrderByDescending(t => t.Start_time);
         var result = (from a in alarm_edits
                       select new ALarmEditViewModel
         {
             ID = a.ID,
             Start_time = a.Start_time,
             End_time = a.End_time,
             Station = a.Station,
             Alarm_area = a.Alarm_area,
             Alarm_class = a.Alarm_class,
             Division_of_respon = a.Division_of_respon,
             Position = a.Position,
             Reason = a.Reason,
             Responsible = a.Responsible,
             Duration = a.Duration
         }).ToList();
         List <AlarmEidtExport> exportList = (from r in result
                                              select new AlarmEidtExport
         {
             开始时间 = r.Start_time,
             结束时间 = r.End_time,
             持续时间 = r.DurationStr,
             呼叫类型 = r.Alarm_class,
             停线工位 = r.Station,
             停线区域 = r.Alarm_area,
             停线原因 = r.Reason,
             位置信息 = r.Position,
             责任部门 = r.Responsible,
             责任类型 = r.Division_of_respon
         }).ToList();
         DataTable dt = Untils.ToDataTable <AlarmEidtExport>(exportList);
         NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
         //添加一个sheet
         NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");
         //给sheet1添加第一行的头部标题
         NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
         //row1.RowStyle.FillBackgroundColor = "";
         for (int i = 0; i < dt.Columns.Count; i++)
         {
             row1.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
         }
         //将数据逐步写入sheet1各个行
         for (int i = 0; i < dt.Rows.Count; i++)
         {
             NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
             for (int j = 0; j < dt.Columns.Count; j++)
             {
                 rowtemp.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString().Trim());
             }
         }
         string strdate = DateTime.Now.ToString("yyyyMMddhhmmss");//获取当前时间
         // 写入到客户端
         System.IO.MemoryStream ms = new System.IO.MemoryStream();
         book.Write(ms);
         ms.Seek(0, SeekOrigin.Begin);
         return(File(ms, "application/vnd.ms-excel", "AlarmDetail" + strdate + "Excel.xls"));
     }
 }