Tengo una matriz de objetos (JSON) en JS y quiero convertirla en una hoja de cálculo de Excel. En los datos JSON, hay algunos pares clave-valor que no quiero convertir a Excel, por ejemplo, Excel no debe contener información del año como se muestra a continuación (EJECUTE EL CÓDIGO HTML PARA VER LA SALIDA DE EXCEL REQUERIDA):
datos JSON:
[ { car: "Range Rover", color: "silver", year: "2021" }, { car: "Benz", color: "black", year: "2019" }, { car: "Toyota", color: "silver", year: "2020" } ]Vista de Excel (ejecutar el fragmento):
<html> <body> <table> <tr> <th>car</th> <th>color</th> </tr> <tr> <td>Range Rover</td> <td>silver</td> </tr> <tr> <td>Benz</td> <td>black</td> </tr> <tr> <td>Toyota</td> <td>silver</td> </tr> </table> </body> </html>¿Cómo puedo lograr esto usando XLSX en JS?
Hay pocas cosas que puedes hacer aquí.
let file = fs.readFileSync('test.json', 'utf-8'); let data = JSON.parse(file); var wb = xlsx.utils.book_new(); var ws = xlsx.utils.json_to_sheet(data); ws['!ref'] = 'A1:B4'; xlsx.utils.book_append_sheet(wb, ws, 'Sheet 1'); xlsx.writeFile(wb, 'test1.xlsx'); let file = fs.readFileSync('test.json', 'utf-8'); let data = JSON.parse(file); var wb = xlsx.utils.book_new(); let dataArray = []; data.forEach(d => { dataArray.push({"car": d.car, "color": d.color}); }); var ws = xlsx.utils.json_to_sheet(dataArray); console.log(ws); xlsx.utils.book_append_sheet(wb, ws, 'Sheet 1'); xlsx.writeFile(wb, 'test2.xlsx');También puede ser útil consultar la documentación de las funciones de la utilidad.