Maison >développement back-end >C++ >Comment télécharger les fichiers Excel générés côté serveur via AJAX dans MVC?

Comment télécharger les fichiers Excel générés côté serveur via AJAX dans MVC?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-29 00:09:09777parcourir

How to Download Excel Files Generated Server-Side via AJAX in MVC?

Génération et téléchargement de fichiers Excel dans MVC en utilisant Ajax

Le téléchargement directement un fichier Excel via un appel AJAX dans MVC n'est pas possible. Au lieu de cela, utilisez Ajax pour envoyer des données au serveur, qui génère ensuite le fichier Excel.

Étape 1: Création de fichiers Excel côté serveur

Utiliser des bibliothèques comme Epplus ou NPOI pour créer le fichier Excel sur le serveur à l'aide des données reçues de la demande AJAX.

Étape 2: renvoyer les informations du fichier au client

Après la génération de fichiers, renvoyez le chemin ou le nom du fichier à la fonction de réussite de l'appel ajax.

Étape 3: déclencher le téléchargement en javascript

Dans le rappel JavaScript success, redirigez le navigateur vers une URL qui sert le fichier, initiant le téléchargement.

Ajax Exemple

<code class="language-javascript">$.ajax({
    type: 'POST',
    url: '/Reports/ExportMyData',
    data: JSON.stringify({ dataprop1: "test", dataprop2: "test2" }),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(returnValue) {
        window.location = '/Reports/Download?file=' + returnValue;
    }
});</code>

Action du contrôleur (téléchargement de fichiers)

<code class="language-csharp">[HttpGet]
public virtual ActionResult Download(string file)
{
    string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
    return File(fullPath, "application/vnd.ms-excel", file);
}</code>

Cette méthode garantit un téléchargement de fichiers Excel fluide déclenché par une demande AJAX sans interférer avec la fonctionnalité du formulaire côté client.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn