Tengo datos de pacientes en mis bases de datos representados en HTML que quiero imprimir como una hoja de Excel usando JSReport. Pero cuando recibo la respuesta del servidor jsreport con la receta, se lee un galimatías y no puedo encontrar la manera de convertirlo en un archivo de Excel.
ejemplo ficticio
const axios = require("axios"); const url = "http://localhost:5488/api/report/"; const data = { "template": { "shortid": "2_Kw0BRuOm", "recipe": "html-to-xlsx", "data": { "people": [ { "name": "Omar rafat", "age": "20", "job": "Software Engineer" } ] } } } axios.post(url, { "template": { "shortid": "2_Kw0BRuOm", "recipe": "html-to-xlsx", "data": { "people": [ { "name": "Omar rafat", "age": "20", "job": "Software Engineer" } ] }, "options": { "reports": { "save": true } } } }).then(res => console.log(res.data)).catch(err => console.log(err));Respuesta sin procesar de html a xlsx
Es posible que me haya perdido el uso de la biblioteca debido a mi malentendido sobre cómo funciona la tecnología, pero realmente espero que algunos de ustedes puedan guiarme sobre la implementación correcta de la misma.
Gracias.
jsreport tiene un cliente nodejs que puede usar https://jsreport.net/learn/nodejs-client
Puede consultar el siguiente ejemplo sobre cómo representar una plantilla y almacenar la salida en el archivo.
const client = require('jsreport-client')('http://localhost:5488') const fs = require('fs').promises async function render () { const res = await client.render({ template: { shortid: '2_Kw0BRuOm' }, data: { someText: 'world!!' } }) const responseBuffer = await res.body() await fs.writeFile('out.xlsx', responseBuffer) } render().catch(console.error)