¿Cómo exportar a excel por medio ajax?

publicado por: Anonymous

La solución que tengo actualmente para que me funciones utilice windows.location, quiero con ajax para obtener una repuesta y asi implementar un loading que se vea cuando inicie la descarga y desaparesca cuando termine con un mensaje de alerta.
introducir la descripción de la imagen aquí

solución

Si estas implementando webapi vas a tener que devoler un FileResult o crearte un ActionResult custom

Export To Excel in MVC

Veras como crea un ExcelResult donde asigna el Response asignado el ContentType y tambien pasarias el render del excel que quieres enviar

public class ExcelResult : ActionResult
{
    public string XMLStream { get; set; }
    public string FileName { get; set; }


    public override void ExecuteResult(ControllerContext context)
    {

        context.HttpContext.Response.Buffer = true;

        context.HttpContext.Response.Clear();

        context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName);

        context.HttpContext.Response.ContentType = "application/vnd.ms-excel";

        context.HttpContext.Response.Write(XMLStream);
    }

}

Respecto a ajax, no se pueden descargar archivos vía ajax. Existen librerías que simulan el efecto de descargar archivos con ajax tal como jquery.fileDownload

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *