模板报告NVelocityOpenXmlWord(模板表格页眉多个报告)「报告页眉格式」

前言:下面所有的分析暂时都是基于怎么应用于我们免费开发的低代码开发平台,给用户提供可视化的Word报表模板。
为什么是NVelocity?因为NVelocity语法简洁且足够简单,但是功能却足够强大,我们需要记住的无外乎就是这么几个常用的命令:#foreach,#if,#set,#odd,#even,#break,#stop等等。
而${变量名}这样的变量都是由用户提供的,我们可以提供自己的方法用于扩展NVelocity的变量。
当然,最主要是相对于Java来说.NET可选且强大的模板引擎不多啊。

模板报告NVelocityOpenXmlWord(模板表格页眉多个报告)


为什么是Open XML SDK呢?因为Open XML SDK开源免费,且能对微软Office无缝操作。
其他好用的商业组件的价格实在是太贵,针对中小企业提供软件产品的我们实在是用不起。
Open XML操作Word常用的元素:Paragraph、Run、Text,Drawing。
一个Paragraph可以包括多个Run,而一个Run理论上也可以包括多个Text,而我们在Word中编辑的文字信息就是在Text下的。
Drawing(图片)又往往在Run下的。
要点分析:由于当前考虑的是应用于我们的低代码开发平台,所以暂时不会考虑太多的扩展。
1、Word实在是太过于灵活了,同一个段落,哪怕同一个句子的内容,都可能属于不同的Run。
比如下面这个foreach循环命令,本应该在同一个Run中,但是实际中很可能被拆分到多个Run。
一个命令可能被拆分到多个Run中2、同一个段落中的不同部分可能有不同的格式,我们往往需要生成的Word中能够保留格式,如下图:希望生成的文档能够保留格式4、表格处理:有时候我们需要这样的表格:这种表格相对比较简单,和普通文本的处理方式相同即可。
这种表格和普通文本相同处理方式而有时候我们又需要这样的表格:能够通过foreach生成多行,还需要能够保留每个单元格的格式。
复杂一些的表格4、页眉页脚的处理;页眉中中也可能有NVelocity命令,那就意味着页眉中也可能有for循环,有if条件,有变量等等。
页眉5、插入图片;图片可能是一张孤零零的图片,也可能是下面这样的按多列输出的表格。
所以图片处理其实更为复杂一些。
6、计算:比如报表要加上报表时间;比如对表格做合计;比如对金额做大写转换;所以要实现一个灵活强大的Word模板引擎,要考虑的东西很多,但是如果实现了,那应该就可以骄傲地来一句“遥遥领先”了吧?

联系我们

在线咨询:点击这里给我发消息