Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.3K
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!