// GET: Informe public ActionResult Index() { //Creamos el ViewModel para rellenar los datos Informe_VM informe_VM = new Informe_VM(); //Creamos una lista que rellenaremos List <Moneda> listaMonedas = new List <Moneda>(); Respuesta respuesta = Func_Monedas.recuperarListaMonedas(listaMonedas); //Asignamos la lista al ViewModel informe_VM.listaMonedas = listaMonedas; //Creamos una lista que rellenaremos y asignaremos al ViewModel List <TiposOperaciones> listaTiposOperaciones = new List <TiposOperaciones>(); respuesta = Func_Monedas.recuperarListaTiposOperaciones(listaTiposOperaciones); informe_VM.listaTipoOperacion = listaTiposOperaciones; //Rellenamos la lista de operaciones en el ViewModel List <Operaciones> listaOperaciones = new List <Operaciones>(); respuesta = Func_Monedas.recuperarListaOperaciones(listaOperaciones); informe_VM.listaOperaciones = listaOperaciones; List <SelectListItem> listaMovimientos = new List <SelectListItem>(); respuesta = Func_Monedas.recuperarListaMovimientos(listaMovimientos); informe_VM.listaMovimientos = listaMovimientos; if (respuesta.tipoRespuesta != TipoRespuesta.OK) { return(View("Error")); } //Enviamos el ViewModel a la vista con los datos necesarios return(View(informe_VM)); }
public ActionResult Index(Informe_VM informe_VM) { int moneda_pk = informe_VM.operaciones.Moneda_PK; int fechaMovimiento = informe_VM.movimientoSemana; //Creamos una lista que rellenaremos List <Moneda> listaMonedas = new List <Moneda>(); Respuesta respuesta = Func_Monedas.recuperarListaMonedas(listaMonedas); //Asignamos la lista al ViewModel informe_VM.listaMonedas = listaMonedas; //Creamos una lista que rellenaremos y asignaremos al ViewModel List <TiposOperaciones> listaTiposOperaciones = new List <TiposOperaciones>(); respuesta = Func_Monedas.recuperarListaTiposOperaciones(listaTiposOperaciones); informe_VM.listaTipoOperacion = listaTiposOperaciones; //Rellenamos la lista de operaciones en el ViewModel List <Operaciones> listaOperaciones = new List <Operaciones>(); respuesta = Func_Monedas.recuperarListaOperaciones(listaOperaciones, moneda_pk, fechaMovimiento); informe_VM.listaOperaciones = listaOperaciones; List <SelectListItem> listaMovimientos = new List <SelectListItem>(); respuesta = Func_Monedas.recuperarListaMovimientos(listaMovimientos); informe_VM.listaMovimientos = listaMovimientos; string boton = Request.Form["btn"]; DataTable datos = new DataTable(); if (boton == "Exportar") { Func_Monedas.recuperarDatosExcel(datos, moneda_pk, fechaMovimiento); using (ExcelPackage excel = new ExcelPackage()) { //Creamos una hoja ExcelWorksheet worksheet = excel.Workbook.Worksheets.Add("Hoja 1"); //Cargamos la lista en la hoja de excel worksheet.Cells["A1"].LoadFromDataTable(datos, true); //Creamos un rango //Parámetros: 1a fila, 1a columna, última fila, última columna ExcelRange range = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column]; //Añadimos una tabla con el rango ExcelTable tab = worksheet.Tables.Add(range, "tabla"); //Formateamos la tabla tab.TableStyle = TableStyles.Medium2; //Le damos espacio entre columnas worksheet.Cells.AutoFitColumns(); //Creo un memorystream using (var memoryStream = new MemoryStream()) { //Tipo de contenido del stream. XMLS en este caso Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; //Cabezera del archivo Response.AddHeader("content-disposition", "attachment; filename= informe.xlsx"); //Guardamos el documento como memory stream excel.SaveAs(memoryStream); //Escribimos el stream en la respuesta del navegador memoryStream.WriteTo(Response.OutputStream); //Vaciamos y eliminamos la respuesta por seguridad Response.Flush(); Response.End(); } } if (respuesta.tipoRespuesta != TipoRespuesta.OK) { return(View("Error")); } } //return View("_resultados"); return(View(informe_VM)); }