poi-tl是一款非常好用的word模板生成庫,更新響應快、文件demo齊全。堪稱word模板界的小軍刀!如果你對word模板技術有了解、或者有興趣,更甚者工作中接觸過,那麼接下來的內容應該會讓你有所收穫。
功能如下:
這裡不再更多的贅述poi-tl的功能了,非常優秀的乙個word模板庫。
如果你還沒使用過poi-tl,那麼接下來的內容,你應該不太會感同身受。
poi-tl使用一段時間後會發現仍存在一些問題,比如行列**需要自己寫**指定樣式、需要寫**指定高度寬度、列表也寫**指定樣式。
為最大化利用word的樣式,減少**量,這裡在v1.6.0之上進行原始碼擴充套件。
加入模板語法:name|attr:var
。
語法:}
模板:其中:測試**:
@test
public void run() });
// 輸出
path outpath = paths.get("src/test/resources", "table_pattern_out.docx");
try (outputstream os = new bufferedoutputstream(new fileoutputstream(outpath.tofile()))) catch (ioexception e) finally catch (ioexception e)
}}
可以看到這裡的 map 中存在 users 這個 key,且存在 2 條資料。user 這個物件有兩個屬性 name、age ,模板在解析時,會自動取值。
輸出:總結:**正常渲染,而且樣式也正常保留,原來的資料也會保留下來,資料不足補空行。
語法:}
模板:測試**:
@test
public void run() throws ioexception });
// 輸出
path outpath = paths.get("src/test/resources", "image_pattern_out.docx");
try (outputstream os = new bufferedoutputstream(new fileoutputstream(outpath.tofile()))) catch (ioexception e) finally catch (ioexception e)
}}
輸出:
總結:能正常根據高度寬度渲染出來
語法:list|limit:var
模板:測試**:
@test
public void run() };
try (inputstream is = files.newinputstream(inpath); outputstream os = files.newoutputstream(outpath)) catch (ioexception e)
}
輸出:
總結:列表也能正常渲染,保證原有的格式。
看示例,你也許會覺得很奇怪,為什麼語法明明寫的var
,但是截圖中有的寫的是[var]
、有的卻寫的var
。
這是因為變數取值採用的 spring expression 語法:如果**中是乙個物件,就可以直接寫var
,是乙個map,就寫[var]
,陣列則是var[下標]
。
如果覺得有用,快快使用起來吧!
postek二次開發 POSTEK二次開發介面
例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...
mcms二次開發 YzmCMS二次開發手冊
摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...
mcms二次開發 YzmCMS二次開發手冊
yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口。一 基本目錄結構.根目錄 cache 快取目錄 必須可寫入 common 全站公共目錄 必須可寫入 uploads 預設上傳目錄 必須可寫入 yz...