1. 程式人生 > >word匯出時freeMarker轉義字元的處理

word匯出時freeMarker轉義字元的處理

根據ftl模板匯出word時,如果填充的字元含有特殊字元< 、>、&,那麼匯出的word是無法開啟的。因為這些字元在匯出word時被認為是ftl的標籤,正常匯出後再開啟是會報錯。如果以xml的方式開啟,會發現所有內容都是完整的,唯獨上面三個特殊字元出問題。

為了解決這個問題,首先我新建一個word,在裡面填上上面三個特殊字元,然後儲存為xml。在該xml中找到對應的字元,發現已經轉義了  &lt; 對應<      &gt;對應>    &amp;對應&

        可以看出,如果填充的是轉義後的字元是可以正常開啟的。所以要在填充字元之前檢測私服是否含有上述特殊字元,如果有就需要轉義。程式碼如下:

	/**
		 * 處理轉義字元
		 * @param str
		 * @return
		 */
		private String transform(String str){
				
			if(str.contains("<")||str.contains(">")||str.contains("&")){
				  str=str.replaceAll("&", "&amp;");
				  str=str.replaceAll("<", "&lt;");
				  str=str.replaceAll(">", "&gt;");
			}
		
			return str;
		}