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

问题描述 投票:0回答:3

我有一个xml文件,其中只有一个使用reportjs呈现的工作表。这些单独的xml文件中有许多用于生成不同的报告,并且每个文件都有自己的<styleSheet>标记和一堆重复的代码。

采用以下格式:

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

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

我试过了:

<!DOCTYPE doc [
<!ENTITY customStyles SYSTEM "./style.xml">
]>
&customStyles;

&customStyles在许多地方没有运气,我也试过使用许多jsreport功能,没有运气。

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

xml openxml worksheet jsreport
3个回答
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


0
投票
  1. 您需要加载已加载的源文件。
  2. 为该文件创建单独的样式表并将其保存到工作表。
  3. 将单个样式应用于您的单元格。

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}`
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.