Descargue el archivo Excel a través de Ajax en mvc
]]Al procesar formularios grandes en MVC, es posible que deba generar un archivo de Excel que contenga datos para un subconjunto específico del formulario sin afectar el resto. AJAX proporciona una solución para esto al permitirle realizar solicitudes parciales al servidor.
no puede descargar el archivo Excel directamente
Desafortunadamente, no puede devolver el archivo que desea descargar directamente a través de AJAX. En su lugar, explore formas alternativas de publicar datos relevantes en el servidor usando AJAX.
Lado del servidor Generación de archivos y respuesta
]]En su servidor, puede usar el código del lado del servidor para generar archivos de Excel. Para hacer esto, considere usar bibliotecas como EPPLU o NPOI. Luego puede pasar la ruta o el nombre del archivo del archivo creado como el valor de retorno a su llamada AJAX.
Redirect para presentar descargar
] En el JavaScript del cliente, puede usar window.location = '/informes/download? File =' returnValue
para establecer la ubicación de la ventana JavaScript en la URL del archivo, lo que lleva al navegador a descargarlo.
experiencia de usuario perfecta
]Este enfoque proporciona una experiencia de usuario perfecta porque la operación de descarga de archivos no sale de la página de origen.
Ajax Call Ejemplo
]El siguiente es un ejemplo de una llamada Ajax que logra esto:
$.ajax({
type: 'POST',
url: '/Reports/ExportMyData',
data: '{ "dataprop1": "test", "dataprop2" : "test2" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Reports/Download?file=' returnValue;
}
});
Método del controlador para descargar archivos
El método del controlador correspondiente para la operación de descarga puede ser el siguiente:
[HttpGet]
public virtual ActionResult Download(string file)
{
string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
return File(fullPath, "application/vnd.ms-excel", file);
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3