poi tl二次開發

2022-03-18 08:36:55 字數 1848 閱讀 7727

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...