Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.3K
Vistas
¿Cómo enviar datos de búfer en express?

Estoy intentando crear y enviar un archivo de Excel al cliente. El cliente debe descargar el archivo a través de una solicitud ajax, porque necesito parámetros de filtro.

Estoy usando el paquete excel4node para crear un archivo de Excel.

Escribo el código a continuación y está funcionando por ahora, pero sospecho si tendré datos más grandes que el búfer. ¿Es esta la forma correcta de usar el búfer? (verifique la línea con el método writeToBuffer)

 const xl = require('excel4node'); const excelCreator = function (data) {...} app.post('/api/excel', jsonParser, (req, res) => { let reqObj = { method: 'post', url: apiUrl + '/MemberService';, headers: { 'Content-Type': 'application/json' }, data: req.body }; axios(reqObj) .then(response => { res.body = responseHandler(response); // a helper function to set res object let data = res.body.Data; res.setHeader('Content-Disposition', 'attachment; filename=' + 'excel.xlsx'); res.type('application/octet-stream'); res.body.Data = null; excelCreator(data).writeToBuffer().then(function (buffer) { res.body.Data = buffer; res.send(res.body); }); }) .catch(...); });
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Primero instale SheetJS js-xlsx

 npm --save install xlsx

Entonces puedes enviar esta respuesta con Express:

 const xlsx = require('xlsx') var wb = xlsx.utils.book_new(); var table = [['a', 'b', 'c'], ['1', '2', '3']] var ws = xlsx.utils.aoa_to_sheet(table); xlsx.utils.book_append_sheet(wb, ws, 'test'); // write options const wopts = { bookType: 'xlsx', bookSST: false, type: 'base64' }; const buffer = xlsx.write(wb, wopts); res.writeHead(200, [['Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']]); res.end(new Buffer(buffer, 'base64'));

No dude en consultar los documentos https://www.npmjs.com/package/xlsx

over 4 years ago · Santiago Trujillo Denunciar

0

 Package used: npm install xlsx --save
 import * as XLSX from 'xlsx'; var json =[ { 'Fullname' : "Ram Shrestha", 'Date Of Birth':"1996-06-01", 'Gender': "Male", 'Salary':"80000", 'Designation':"Senior" }, { 'Fullname' : "Ramesh Shrestha", 'Date Of Birth':"1997-06-01", 'Gender': "Male", 'Salary':"90000", 'Designation':"Senior" } ]; const fileName = "Sample"; const workBook: XLSX.WorkBook = XLSX.utils.book_new(); const workSheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json); XLSX.utils.book_append_sheet(workBook, workSheet, `${excelFileName}`) const buffer = XLSX.write(workBook, { bookType: 'xlsx', bookSST: false, type: 'base64' }); res.writeHead(200, [ ['Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'], ["Content-Disposition", "attachment; filename=" + `${fileName}.xlsx`] ]); res.end(Buffer.from(buffer, 'base64'));

espero que funcione .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda