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

585
Views
Hoja de exportación angular XLSX de matriz anidada en una hoja

estoy usando este paquete xlsx

Quería exportar una matriz anidada de exportación de objetos en el ejemplo de hoja de Excel agregado a continuación, ¡ayuda por favor!

 let data = [ { "product": "Test Product", "id": 1, "childProduct": [ { name: "Child Product 1", "id": 11 }, { name: "Child Product 2", "id": 12 } ] }, { "product": "Test Product", "id": 1, "childProduct": [ { "name": "Child Product 1", "id": 13 }, { "name": "Child Product 2", "id": 14 } ] } ]

He probado estas soluciones, pero no funciona, siempre reemplaza los últimos datos.

 let wb = xlsx.utils.book_new(); data.map((item: any) => { xlsx.utils.json_to_sheet(item.childProduct); })

Una sola hoja debe ser así:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

No estoy seguro de si hay una forma más elegante de hacer esto con los métodos de biblioteca xlsx incorporados, pero puede transformar los datos para obtener el resultado deseado.

La matriz que pasa a la función json_to_sheet debe estructurarse de esta manera:

 [ { "name": "Child Product 1", "id": 11 }, { "name": "Child Product 2", "id": 12 }, { "name": "--", "id": "--" }, { "name": "name", "id": "id" }, { "name": "Child Product 1", "id": 13 }, { "name": "Child Product 2", "id": 14 } ]

Transforme los datos en una nueva matriz para exportar:

 const exportData = data.map((item, i) => { if (data.length !== i+1) { item.childProduct.push({"id": "--", "name": "--"}); item.childProduct.push({"id": "id", "name": "name"}); } return item.childProduct; }).flat();

Exportar datos usando la biblioteca:

 xlsx.utils.json_to_sheet(exportData);
about 4 years ago · Juan Pablo Isaza Report

0

let dummyArray =[] data.map((dat)=>{ dat.childProduct.forEach((x)=>{ dummyArray.push(x) }) }); xlsx.utils.json_to_sheet(dummyArray)

Esto es para formato simple.

about 4 years ago · Juan Pablo Isaza 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!