freemaker生成word文档

  1. 这样是横着的:
                    <w:sectPr w:rsidR="00BF219B" w:rsidSect="00EA328D">
                        <w:pgSz w:w="16838" w:h="11906" w:orient="landscape"/>
                        <w:pgMar w:top="1797" w:right="1440" w:bottom="1797" w:left="1440" w:header="851" w:footer="992" w:gutter="0"/>
                        <w:cols w:space="425"/>
                        <w:docGrid w:type="lines" w:linePitch="312"/>
                    </w:sectPr>
  1. 这样是竖着的:
                <w:sectPr w:rsidR="00BF219B">
                        <w:pgSz w:w="11906" w:h="16838"/>
                        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
                        <w:cols w:space="425"/>
                        <w:docGrid w:type="lines" w:linePitch="312"/>
                    </w:sectPr>

准确地来说是第二行决定的——w:w表示宽度;w:h表示长度,当宽度>长度时页面就是横向的了,可以省略w:orient="landscape"
另外还要注意作用范围,我的经验是<w:tbl>上分写一个竖向的,</w:tbl>下面写一个(似乎要多一个w:rsidSect)横向的,这样作用到table上就是横向的,表格上面的文字部分是竖向的。

  • 对于表格的生成,可以选择1.手动在表格里填占位符,这样比较麻烦而且得提前知道行数;2.利用#list标签参考以下两个链接
    freemarker生成word模版文档及list便利数据(二)
    使用freemarker生成word,步骤详解并奉上源代码
    总结一下用list标签生成word的表格:
    1.在占位符的那一行的<w:tr xxx>标签之上加上<#list newList as listKey>,占位符需要是如${listKey.name1}的形式,行标签结尾</w:tr>后加上</#list>
    2.表格的数据都需要放进List<Map<String,Object>>中,变量名为newList,最后把该list放入Map中,key值也是“newList”,用for循环来控制插入多少行,如下:
//        加载表格的数据
        List<Map<String,Object>> newList = new ArrayList<Map<String,Object>>();  
        for (int i = 0; i < 10; i++) {  
            Map<String,Object> map = new HashMap<String,Object>();  
//            map.put("all1", i);  
//            map.put("all2", "内容"+i);  
//            map.put("all3", "内容"+i);  
//            map.put("all4", "内容"+i);  
//            map.put("allRate", "内容"+i);  
            map.put("p_name", "内容"+i);  
            map.put("p1_1", i);  
            map.put("p1_2", "内容"+i);  
            map.put("p1_3", "内容"+i);  
            map.put("p1_4", "内容"+i);  
            map.put("p1_rate", "内容"+i);  
            newList.add(map);  
        }  
                  dataMap.put("newList", newList);  

转载于:https://www.cnblogs.com/cashew/p/8645875.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值