freemaker生成word文档

摘要:
文档有一百多页,首先一个数字一个数字地去改写为${}这种形式,可是转为xml文件后,发现占位符被一些标签分割开了,还是转xml后再写占位符吧。表名和日期最好写在类似于配置文件的形式,方便改,免得去一条又一条的sql里改。
  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);  

免责声明:文章转载自《freemaker生成word文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇这样做,免费从Oracle同步数据powerdesigner逆向工程生成PDM时的列注释解决方案的补充下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

jmeter监控内存,CPU等方法

当然,我们也可以选择本地进程下的远程进程来获取服务器的内存使用情况和其他信息。在文本框中输入需要测试的服务器的IP地址:port,然后在下面输入用户名和密码。单击“连接”以查看发生的情况。...

node 访问第三方API

如果没有提供头,将检测文件后缀,并在PUT请求中设置相应的内容类型。...

easyexcel导出两种方式response返回文件流下载和保存到服务器返回下载链接

1、response方式返回excel文件流@GetMapping("/exportExcel")publicvoidexportExcel(@RequestParam(value="menu")Stringmenu,@RequestParam(value="dwflglId")intdwflglId,@RequestParam(value="qjCode"...

【转载】 银河麒麟V10系统安装U盘制作

在制作U盘安装盘的过程中,Kylin系统的ISO映像文件比较大,因此很耗时。创建完成后,“写入硬盘映像”对话框将自动关闭。...

IPv6地址的ping、telnet等操作

最近,我在研究https协议如何传输数据。我用wireshark捕捉数据包并分析它们。我发现客户端和谷歌网站在传输数据时使用了IPv6地址,因此我测试了与IPv6地址相关的基本功能。...

IntelliJ Idea 2019.1.3永久激活方式,JAR文件分享

用法:1.下载压缩包并将其解压缩以获取jetbrains代理Jar,将其放在您认为合适的文件夹中。2.修改idea64.exe。IntelliJIdea安装目录的bin文件夹中的vmoptions文件。若它是一个32位系统,那个么它就符合这个想法。exe Vmoptions文件。在文件末尾添加一行:-javaagent:E:/ProgramFiles/ide...