我有一个xml文件,其中只包含一个使用reportjs呈现的工作表。这些单独的xml文件中有许多用于生成不同的报告,每个报告都有自己的{"class": "table"}
标记,其中包含一堆重复的代码。
采用以下格式:
class="table"
我想将<styleSheet>
代码拉到一个单独的文件中,然后创建一组标准样式,然后将其导入到每个报告中。
我试过了:
<worksheet>
...custom report...
</worksheet>
<styleSheet>
...tonnes of duplicated styling...
</styleSheet>
其中<styleSheet>
在很多地方没有运气,我也尝试过使用许多jsreport功能而没有运气。
我如何简单地将样式表内联到每个报告中?
答案 0 :(得分:1)
这是jsreport asset的任务。将样式表xml作为资源上传,并使用xlsxReplace将其添加到特定模板。
{{#xlsxReplace "xl/styles.xml"}}
{#asset style.xml}}
{{/xlsxReplace}}
{{#xlsxAdd "xl/worksheets/sheet1.xml" "worksheet.sheetData[0].row"}}
<row>
<c t="inlineStr" s="1"><is><t>Hello world</t></is></c>
</row>
{{/xlsxAdd}}
{{{xlsxPrint}}}
可以找到游乐场示例here。
答案 1 :(得分:0)
这是我最终做的事情:
我已经在阅读xml文件,获取内容并使用
进行渲染fs.readFile(templatePath, 'utf8', function(err, content){
...
}
所以我只是将样式提取到一个新文档中,嵌套了一些读取文件并连接了结果。
fs.readFile(templatePath, 'utf8', function(err, content){
fs.readFile(stylesPath, 'utf8', function(err, styles){
...
content: `${content}{$styles}`
}
}