Je souhaite lancer un téléchargement par navigateur d'un fichier Excel généré dans mon backend, mais je ne sais pas comment transmettre ce type de réponse.

app.get('/all', function (req, res) {
    db.query(...) LIMIT 20000;")
    .then(function (data) {
        let result = []
        data.forEach(element => {
            result.push(element)
        })

        /* make the worksheet */
        var ws = XLSX.utils.json_to_sheet(data);

        /* add to workbook */
        var wb = XLSX.utils.book_new();
        XLSX.utils.book_append_sheet(wb, ws, "All");

        XLSX.writeFile(wb, 'alltest1.xlsx'); //This saves the file in my server but I don't know how to send it as a response.

        console.log('Ready');

        res.send(result);
    })
    .catch(function (error) {
        console.log("ERROR:", error)
    })
})

J'ai essayé de créer Excel dans le frontend, mais Chrome manque de mémoire en raison de la grande quantité de données, je pense. J'ai également essayé de passer un tampon mais le fichier que je recevais semble être corrompu.

1
ODLana 3 févr. 2020 à 16:05

1 réponse

Meilleure réponse