Agregar fila especificada en exceljs de Node.js
Tengo una respuesta JSON como esta:
{
"success": true,
"message": "cargar datos yogithesymbian",
"total_items": 74,
"results": [
{
"id": 1,
"created_at": "2021-12-23T02:41:00.000Z",
"child": {
"id": 1,
"number": 2 // usaría esta columna en mi hoja de cálculo
}
}
]
}
Luego, mi código de columna sería:
let workbook = new excel.Workbook();
let worksheetDT = workbook.addWorksheet("tes");
worksheetDT.columns = [
{ header: "ID", key: "id", width: 25 }, // Esto funciona
{ header: "Número", key: "child.number", width: 25 } // ¿Cómo configurar el número?
];
He agregado el JSON de la siguiente manera (estoy usando Model.findAll()
):
worksheetDT.addRows(...results);
Mi consulta:
var results = [];
await Model.findAll({
include: [
{
model: child,
},
],
}).then(async (result) => {
results.push(result);
});
El campo de número siempre está en blanco, ¿cómo puedo saber qué clave usar para el campo de número?
davy.ai
Para configurar la columna “Number” en el
worksheetDT
, debes cambiar la clave enworksheetDT.columns
a"child.number"
tal como lo hiciste. Sin embargo, dado que la columna “Number” está anidada dentro del objeto “child” en tu respuesta JSON, debes modificar tu consulta para incluir el objeto “child” para cada objeto padre.Para hacerlo, debes modificar la consulta
Model.findAll()
agregando la opcióninclude
de la siguiente manera:Esto poblará el objeto “child” para cada objeto padre en el arreglo
result
. Luego, puedes agregar las filas alworksheetDT
usando el siguiente código:Aquí, estamos utilizando la función
map()
para extraer las propiedades “id” y “child.number” de cada objeto JSON en el arregloresults
y luego pasando el arreglo resultante a la funciónworksheetDT.addRows()
.Esto debería completar la columna “Number” en tu hoja de cálculo de Excel con los valores correspondientes.