freemarker/ftl模板/导出doc 单元格合并注意事项

在现有模板上添加新表格数据      word 导出 2003版xml 和默认版本xml  是有区别的,如果已经创建好的ftl模板文件,后期维护添加图表,则必须使用同样版本的xml进行模板数据的追加。

一下说明下合并单元格标签是使用

1上下单元格合并

<w:vmerge w:val="restart"/> 代表从哪一行开始合并 ,<w:tr>代表一行数据 ,然后到下一个的哪一一个单元格结束  <w:vmerge/> 需要成对出现,要求必须写在<w:tcPr>标签内

有开始有结束

 

左右合并

左右合并 设置合并列数 如设置合并2列,,则被合并列,元素要删除。

例如一行中你5列的数据元素,你要吧 1,2列合并,则2列上的元素要移除,否则暂用位置。表格会超出一格

<w:gridSpan w:val="2"/> <!--单元格左右合并写在<w:tcPr>标签内-->

<w:vmerge w:val='restart'/><w:vmerge/> 
<!--单元格上下合并写在<w:tcPr>标签内,开始合并行和结束合并行成对出现-->

<w:tbl>    <!--一个表格类似html table--> 
<w:tblPr>  <!--表格全局样式 Pr结尾一般为样式处理--> 
<w:tr>     <!--表格一行数据   类似html  tr--> 
<w:tc>     <!--表格一列数据,一个单元格 类似 html td--> 

<w:p> <!--表示一个段落-->
<w:val > <!--表示一个值-->
<w:r> <!--表示一个样式串,指明它包括的文本的显示样式,表示一个特定的文本格式-->
<w:t> <!--表示真正的文本内容-->
<w:rPr> <!--是<w:r>标签内的标签,对Run文本属性进行修饰-->
<w:pPr> <!--是<w:p>标签内的标签,对Paragraph文本属性进行修饰-->
<w:rFronts> <!--字体-->
<w:hdr> <!--页眉-->
<w:ftr> <!--页脚-->
<w:drawing > <!--图片-->
<wp:extent> <!--绘图对象大小-->
<wp:effectExtent > <!--嵌入图形的效果-->
<wp:inline  > <!--内嵌绘图对象,dist(T,B,L,R)距离文本上下左右的距离-->
<w:noProof  > <!--不检查拼写和语法错误-->
<w:docPr> <!--表示文档属性-->
<w:rsidR> <!--指定唯一一个标识符,用来跟踪编辑在修订时表行标识,所有段落和段落中的内容都应该拥有相同的属性值,如果出现差异,那么表示这个段落在后面的编辑中被修改。-->
<w:r> <!--表示关系,段落中以相连续的中文或英文字符字符串,作为开始和结束。目的就是要把一个段落中的中英文字符区分开来。 -->
<w:ind> <!--w:pPr元素的子元素,跟w:pStyle并列,ind代表缩进情况:有几个属性值:①firstLine(首行缩进)②left(左缩进)③当left和firstLine同时出现时代表下面的元素有两种属性首行和下面其他行都是有属性的④hanging(悬挂)-->
<w:hint> <!--字体的类型,w:rFonts的子元素,属性值eastAsia表面上的意思是“东亚”,指代“中日韩CJK”类型。-->
<w:bCs> <!--复合字体的加粗-->
<w:bookmarkStart> <!--书签开始-->
<w:bookmarkEnd> <!--书签结束-->
<w:lastRenderedPageBreak > <!--页面进行分页的标记,是w:r的一个属性,表示此段字符串是一页中的最后一个字符串。-->
<w:smartTag > <!--智能标记-->
<w:attr  > <!--自定义XML属性-->

<w:b w:val=”on”> <!--表示该格式串种的文本为粗体-->
<w:jc w:val="right"/> <!--表示对齐方式-->
<w:sz w:val="40"/> <!--表示字号大小-->
<w:szCs w:val="40"/> <!---->
<w:t xml:space="preserve"> <!--保持空格,如果没有这内容的话,文本的前后空格将会被Word忽略--> 
<w:spacing  w:line="600" w:lineRule="auto"/> <!--设置行距,要进行运算,要用数字除以240,如此处为600/240=2.5倍行距-->  
<w:jc w:val="center"/>  <!-- 这句话表示段落对齐方式 --> 



<!-- 设置了页的宽,高,和页的各边距。各项的值均是英寸乘1440得出 --> 
<w:body>
    <w:sectPr>  
        <w:pgSz w:w="12240" w:h="15840"/>
        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/>
    </w:sectPr>  
</w:body> 

<!--页眉和页脚-->
<w:sectPr wsp:rsidR="002C452C">
    <w:hdr w:type="odd" >
        <w:p>
            <w:pPr>
                <w:pStyle w:val="Header"/>
            </w:pPr>
            <w:r>
                <w:t>这是页眉</w:t>
            </w:r>
        </w:p>
    </w:hdr>
    <w:ftr w:type="odd">
        <w:p>
            <w:pPr>
                <w:pStyle w:val="Footer"/>
            </w:pPr>
            <w:r>
                <w:t>这是页脚</w:t>
            </w:r>
        </w:p>
    </w:ftr>
</w:sectPr> 

<!--表示文档的视图是“print”,视图比例100%-->
<w:docPr>
    <w:view w:val="print"/><w:zoom w:percent="100"/>
</w:docPr>

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,要实现在Java中使用FreeMarker导出多个FTL模板文件,可以按照以下步骤进行: 1.在Java项目中引入FreeMarker依赖库。 2.创建多个FTL模板文件,并将它们保存在指定的目录下。 3.在Java代码中,使用FreeMarker的Configuration类来加载FTL模板文件,并将模板数据填充到模板文件中,生成输出结果。 4.如果需要嵌套使用多个FTL模板文件,可以使用include指令或import指令,将一个FTL模板文件中的内容插入到另一个FTL模板文件中。 下面是一个简单的例子,演示了如何在Java中使用FreeMarker导出多个FTL模板文件: ``` public static void main(String[] args) throws Exception { //创建Configuration对象 Configuration cfg = new Configuration(Configuration.VERSION_2_3_23); cfg.setDirectoryForTemplateLoading(new File("templates")); //加载第一个模板文件 Template template1 = cfg.getTemplate("template1.ftl"); //设置第一个模板文件的数据模型 Map<String, Object> data1 = new HashMap<>(); data1.put("name", "John"); //将第一个模板文件的输出结果作为第二个模板文件的输入数据 StringWriter stringWriter = new StringWriter(); template1.process(data1, stringWriter); String result1 = stringWriter.toString(); //加载第二个模板文件 Template template2 = cfg.getTemplate("template2.ftl"); //设置第二个模板文件的数据模型 Map<String, Object> data2 = new HashMap<>(); data2.put("content", result1); //将第二个模板文件的输出结果写入到文件中 Writer out = new FileWriter(new File("output.html")); template2.process(data2, out); out.flush(); out.close(); } ``` 在上面的代码中,我们首先创建了一个Configuration对象,并指定了FTL模板文件所在的目录。然后,我们加载了两个FTL模板文件,并设置了它们的数据模型。最后,我们将第一个模板文件的输出结果作为第二个模板文件的输入数据,并将第二个模板文件的输出结果写入到文件中。 在实际应用中,您可能需要更复杂的模板嵌套结构,但是基本的实现思路是相同的。希望这个例子能帮助您理解如何在Java中使用FreeMarker导出多个FTL模板文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值