/// <summary> /// 根据查询条件查询报表数据 /// </summary> /// <param name="model">参数</param> /// <returns>返回结果集</returns> public ActionResult QueryMaterialConsume(LotMaterialList1ViewModel model) { string strErrorMessage = string.Empty; MethodReturnResult <DataSet> result = new MethodReturnResult <DataSet>(); try { using (LotMaterialListServiceClient client = new LotMaterialListServiceClient()) { RPTDailyDataGetParameter param = new RPTDailyDataGetParameter(); param.StartDate = model.StartTime.ToString(); param.EndDate = model.EndTime.ToString(); param.LocationName = model.LocationName; param.LineCode = model.LineCode; param.OrderNumber = model.OrderNumber; MethodReturnResult <DataSet> ds = client.GetMaterialConsume(param); ViewBag.HistoryList = ds; if (ds.Code > 0) //产生错误 { result.Code = ds.Code; result.Message = ds.Message; result.Detail = ds.Detail; return(Json(result)); } } } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } if (Request.IsAjaxRequest()) { return(PartialView("_MaterialConsumeListPartial", model)); } else { return(View("IndexMaterialConsume", model)); } }
/// <summary> /// 导出到excel /// </summary> /// <param name="model">参数</param> /// <returns>导出数据到excel</returns> public ActionResult ExportToExcelMaterialConsume(LotMaterialListViewModel model) { DataTable dt = new DataTable(); MethodReturnResult <DataSet> result = new MethodReturnResult <DataSet>(); using (LotMaterialListServiceClient client = new LotMaterialListServiceClient()) { RPTDailyDataGetParameter param = new RPTDailyDataGetParameter(); param.StartDate = model.StartTime.ToString(); param.EndDate = model.EndTime.ToString(); param.LocationName = model.LocationName; param.LineCode = model.LineCode; param.OrderNumber = model.OrderNumber; MethodReturnResult <DataSet> ds = client.GetMaterialConsume(param); dt = ds.Data.Tables[0]; } //创建工作薄。 IWorkbook wb = new HSSFWorkbook(); //设置EXCEL格式 ICellStyle style = wb.CreateCellStyle(); style.FillForegroundColor = 10; //有边框 style.BorderBottom = BorderStyle.Thin; style.BorderLeft = BorderStyle.Thin; style.BorderRight = BorderStyle.Thin; style.BorderTop = BorderStyle.Thin; IFont font = wb.CreateFont(); font.Boldweight = 10; style.SetFont(font); ISheet ws = null; for (int j = 0; j < dt.Rows.Count; j++) { if (j % 65535 == 0) { ws = wb.CreateSheet(); IRow row = ws.CreateRow(0); ICell cell = null; #region //列名 foreach (DataColumn dc in dt.Columns) { cell = row.CreateCell(row.Cells.Count); cell.CellStyle = style; cell.SetCellValue(dc.Caption); } #endregion font.Boldweight = 5; } IRow rowData = ws.CreateRow(j + 1); #region //数据 ICell cellData = null; foreach (DataColumn dc in dt.Columns) { cellData = rowData.CreateCell(rowData.Cells.Count); cellData.CellStyle = style; if (dc.DataType == typeof(double) || dc.DataType == typeof(float)) { cellData.SetCellValue(Convert.ToDouble(dt.Rows[j][dc])); } else if (dc.DataType == typeof(int)) { cellData.SetCellValue(Convert.ToInt32(dt.Rows[j][dc])); } else { cellData.SetCellValue(Convert.ToString(dt.Rows[j][dc])); } } #endregion } MemoryStream ms = new MemoryStream(); wb.Write(ms); ms.Flush(); ms.Position = 0; return(File(ms, "application/vnd.ms-excel", "LotMaterialData.xls")); }