poi word插入图片_豌豆BI工具看板Word导出技术详解
Word是最常見的文檔編輯工具,當(dāng)數(shù)據(jù)分析完成之后,將分析數(shù)據(jù)的圖表在Word中展現(xiàn),進行匯報或者存檔是非常具有現(xiàn)實意義。在此背景之下,全新的Word導(dǎo)出,在豌豆BI 2.1.2 中與大家見面了。
本次豌豆BI的Word導(dǎo)出功能,在技術(shù)使用及導(dǎo)出內(nèi)容上都進行了一定的革新。
常見生成Word技術(shù)
目前生成Word文檔方案所用的主流技術(shù)很多,也都各有特點,具體優(yōu)缺點見下:
Apache POI
優(yōu)點: 不僅在讀寫Excel功能強大、操作簡單,隨著近幾年來對Word讀寫功能的不斷提升,對Word的支持程度也大大增強。可跨平臺使用。
缺點: 相對POI對Excel的支持程度,在對Word的支持程度還是欠佳。
Jacob
優(yōu)點: 功能強大。
缺點: 代碼量大,設(shè)置樣式繁瑣,需要windows平臺支持,無法跨平臺。
Java2word
優(yōu)點: 功能強大,操作簡單。
缺點: 能滿足一般要求,不支持07格式,國人開發(fā)的,參考資料較多,需要windows平臺支持。
iText
優(yōu)點:功能全,能滿足一般要求。
缺點:不能直接生成或操作doc文檔,只能生成rtf格式的文檔,rtf也可以用Word打開。
JSP
優(yōu)點:操作簡單,代碼量少。
缺點:能把當(dāng)前頁面導(dǎo)出簡單的Word,不能設(shè)置樣式,美觀性差,無法操作Word。
XML
優(yōu)點:代碼量少,樣式、內(nèi)容容易控制,打印不變形,完全符合office標(biāo)準(zhǔn)。
缺點:需要提前設(shè)計好Word模板,無法適用于多變的文檔結(jié)構(gòu)。
由以上內(nèi)容不難看出Jacob、Java2word功能強大但是需要windows平臺支持,無法做到跨平臺。iText功能也比較強大但是生成的文檔為rtf格式并不是Word的標(biāo)準(zhǔn)文檔格式。JSP雖然操作簡單但是樣式變形嚴(yán)重,美觀性差。XML代碼量少,美觀性好,完全符合office標(biāo)準(zhǔn),但是需要提前設(shè)計好模板,無法適用于多變的文檔結(jié)構(gòu)。相較而言,Apache POI不僅功能全,可導(dǎo)出標(biāo)準(zhǔn)的doc或者docx文檔格式,樣式和內(nèi)容都易控制,可適用于復(fù)雜的文檔結(jié)構(gòu),不需要Windows平臺支持,可跨平臺使用。
豌豆BI工具Word導(dǎo)出技術(shù)
豌豆BI工具看板導(dǎo)出成Word采用的是功能強大且可跨平臺使用的Apache POI技術(shù),導(dǎo)出docx格式文檔。
利用新版本W(wǎng)ord的新特性和豌豆BI看板結(jié)構(gòu)特征我們對導(dǎo)出內(nèi)容結(jié)構(gòu)進行了創(chuàng)新設(shè)計,同時結(jié)合Apache POI技術(shù)實現(xiàn)了代碼結(jié)構(gòu)和布局算法的突破。
1、組件導(dǎo)出內(nèi)容結(jié)構(gòu)設(shè)計
借助docx格式可以在文本框中插入表格和圖片的特性,針對不同組件結(jié)構(gòu)不同導(dǎo)出不同結(jié)構(gòu)的一個或者多個文本框,將所有內(nèi)容放入文本框中,最大限度的保持網(wǎng)頁原來的展示效果,解決Word無滾動條導(dǎo)致有些含有滾動條的組件導(dǎo)出只能進行遮蓋或者撐開這種破壞布局效果的解決辦法。
如下圖豌豆BI看板。
在保證了數(shù)據(jù)全部導(dǎo)出成Word的情況下,布局與頁面上布局幾乎完全一致。
2、布局算法設(shè)計
布局算法主要包括:頁面大小和導(dǎo)出比例算法、自動分段算法、組件位置信息算法。
頁面大小和導(dǎo)出比例算法
根據(jù)設(shè)計看板時分辨率、查看看板時瀏覽器顯示的寬高,以及Word本身對紙張大小的限制等多個因數(shù)對導(dǎo)出Word頁面紙張的大小進行綜合計算,優(yōu)化頁面大小和導(dǎo)出比例,以達到最佳的展示效果。
自動分段算法
1. 采取一邊遍歷所有組件一邊將遍歷到的組件插入不同段落的方式進行分段,根據(jù)組件位置信息計算分析是否存在合適段落或者需要新建段落,新建段落插入到哪里,同時還需計算修改段落信息以及判斷是否需對段落的合并處理。
2. 如果前面頁面大小是宏觀的把控Word導(dǎo)出看板的效果,那么對看板進行自動的段落劃分就是細(xì)化整個布局的關(guān)鍵步驟,如果分段不正確,組件的位置信息就不可能正確,如果分段不合理,則整個看板導(dǎo)出可能也不會好看。
組件位置信息算法
組件的位置信息是做好布局的最后一步,和瀏覽器不同,在Word里面它是一個相對段落的位置信息,所以每當(dāng)段落位置信息更新之后,內(nèi)部所有組件的位置信息也隨之變動需要重新計算。
3、內(nèi)容友好設(shè)計
導(dǎo)出內(nèi)容可編輯
除一些圖片類型組件導(dǎo)出不可編輯外,所有文字表格類型的組件導(dǎo)出后都是可以進行任意的編輯的,如富文本組件、表格組件、摘要組件、預(yù)警組件等。
提供表格附錄,一次導(dǎo)出所有數(shù)據(jù)
在數(shù)據(jù)量較大的情況下,看板會對表格組件進行分頁處理,新版Word導(dǎo)出采用編輯文檔的一般習(xí)慣,如果用戶選擇導(dǎo)出所有頁后,會將其余數(shù)據(jù)以附錄的形式添加到文檔末尾。
展現(xiàn)數(shù)據(jù)量可配置
我們對附錄表格的最大數(shù)據(jù)行數(shù)進行了限制,同時支持配置,以更好的適應(yīng)不同的運行環(huán)境,如上面43頁的表格組件,共4200多行數(shù)據(jù),在最大數(shù)據(jù)行數(shù)限制為1000行時,我們導(dǎo)出的全部內(nèi)容為如下5個Word文檔。
總 結(jié)
豌豆BI看板導(dǎo)出Word功能,有兩大特性,可以用兩個詞來總結(jié),一個是“革新”,另一個是“友好”。
“革新”主要體現(xiàn)在:
1. 新技術(shù),采用Apache POI最新生成Word技術(shù);
2. 新格式,采用docx 新的Word文檔格式;
3. 新結(jié)構(gòu),將導(dǎo)出內(nèi)容放在文本框中解決Word中沒有滾動條的問題;
4. 新算法,根據(jù)豌豆BI看板特性設(shè)計符合其特性的布局算法。
“友好”主要體現(xiàn)在:
1. 可編輯,最大范圍的可編輯導(dǎo)出形式;
2. 表格附錄,在一次性導(dǎo)出所有數(shù)據(jù)時,采用表格附錄,符合一般文檔編輯習(xí)慣;
3. 可配置,提供一個Word文檔導(dǎo)出的數(shù)據(jù)量的配置,以適應(yīng)不同的運行環(huán)境。
總結(jié)
以上是生活随笔為你收集整理的poi word插入图片_豌豆BI工具看板Word导出技术详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栈顶指针到底指向哪_被称为“程序员试金石
- 下一篇: python爬虫机器人价格_Python