OpenXML将xml样式表导入xml工作表?

时间:2018-02-21 21:41:49

标签: xml openxml worksheet jsreport

我有一个xml文件,其中只包含一个使用reportjs呈现的工作表。这些单独的xml文件中有许多用于生成不同的报告,每个报告都有自己的{"class": "table"}标记,其中包含一堆重复的代码。

采用以下格式:

class="table"

我想将<styleSheet>代码拉到一个单独的文件中,然后创建一组标准样式,然后将其导入到每个报告中。

我试过了:

<worksheet>
   ...custom report...
</worksheet>
<styleSheet>
   ...tonnes of duplicated styling...
</styleSheet>

其中<styleSheet>在很多地方没有运气,我也尝试过使用许多jsreport功能而没有运气。

我如何简单地将样式表内联到每个报告中?

2 个答案:

答案 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}`
    }
}