天天看點

java程式設計使用freemarker導出word問題

使用參考:http://freemarker.foofun.cn/toc.html

  需求:提取一些必要的字段資訊寫入到固定的word模版中。

  1、freemarker中周遊集合

①周遊list集合
      
<#list mylist as obj>
    ${obj.name}
</#list>      
②周遊map集合
      
<#list myMap?keys as key> 
    ${key}  ${myMap[key]}
</#list>      

  

  2、判斷字元串非空

<#if key??>
   myMap[key]
<#else>
    空
</#if>      

  3、周遊的索引

使用:"别名_index"的形式擷取索引
<#list myList as obj>
    ${obj_index}
</#list>      

  4、html中textarea送出的内容換行符轉換

  注意:如果不轉換,則word會識别為空格符

  freemarker中的換行符為:<w:br />

  在建構資料模型的時候使用替換的方式将"\n"替換為“<w:br />”

private String replaceEnter(String str) {
        String reStr = "<w:br />";
        if (StringUtils.isNotBlank(str)) {
            str = str.replaceAll("\n", reStr);
        }
        return str;
    }      

   

  5、對于html特殊字元,例如<、>等,轉義方式為${str?html}

  

  6、對應js特殊字元串,如\n、" 等(\n會顯示成一個空格),轉義方式為${str?js_string}

   

  

以上為本次學習使用過程中遇到的一些小問題,需解決的知識。

      2018年8月30日