javascript - 将来自 JSReport 的 html-to-xlsx 配方响应呈现为可下载的 Excel 表
问题描述
我的数据库中有患者数据以 HTML 表示,我想使用 JSReport 将其打印为 Excel 表格。但是,当我从 jsreport 服务器收到带有配方的响应时,它会显示为乱码,我找不到将其呈现为 excel 文件的方法。
虚拟示例
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));
原始 html 到 xlsx 响应
由于我对技术如何工作的误解,我可能错过了图书馆的使用,但我真的希望你们中的一些人能指导我正确实施它。
谢谢。
解决方案
jsreport 有 nodejs 客户端,你可以使用 https://jsreport.net/learn/nodejs-client
您可以查看以下示例,了解如何呈现模板并将输出存储到文件中。
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)
推荐阅读
- javascript - 在 JS 对象中。为什么原型和构造函数总是相互嵌套
- c# - 动态保存文件 .net core
- sed - 得到一切直到美元符号,但如果没有美元符号存在
- python - Beautiful Soup 将 < 替换为 <
- python - 如何将while函数附加到列表中?
- oauth-2.0 - 如何在 Keycloak 中指定刷新令牌的生命周期
- oracle - ORA-02291: 插入多行时找不到父键
- javascript - 如何缩短此 JavaScript 代码?
- vue.js - 在 vuejs 项目中包含 bootstrap 4 的正确方法
- javascript - php:修改属性html标签