java/word+fusionchart生成圖表深入分析
更新時(shí)間:2012年11月27日 09:37:13 作者:
本文將以java/word+fusionchart生成圖表問(wèn)題深入解析,有興趣的朋友可以參考下
一個(gè)朋友的項(xiàng)目里用到了fusionchart,同時(shí)需要提供多個(gè)報(bào)表的word下載功能。
毫無(wú)疑問(wèn),只是一個(gè)很棘手的問(wèn)題。
fusionchart提供了服務(wù)端和客戶端生成圖片的功能,都是基于client端展示了flash以后做的。
朋友的項(xiàng)目是基于linux的,office本身的那套com機(jī)制是沒辦法通過(guò)jacob調(diào)用了。
純java的操作word,POI和docx4j,可以生成word文檔,table,插入圖片。
一個(gè)可行的思路是點(diǎn)擊下載報(bào)表時(shí),先在一個(gè)新頁(yè)面打開各個(gè)flash的圖表,再依次調(diào)用fusoinchart的功能在服務(wù)器端生成圖片,
最后js再調(diào)用servlet生成doc,同時(shí)把上一步生成的各個(gè)圖片插入到文檔內(nèi)。
這個(gè)曲線救國(guó)的策略性能非常低下,。
第二個(gè)想法是直接在word中插入flash,作為ole到word中的形式,同時(shí)跟其他內(nèi)容混排。這個(gè)方式應(yīng)該性能應(yīng)該是ok的,由word打開后去實(shí)時(shí)渲染flash。
但是發(fā)現(xiàn)word如果使用OLE doc的方式,不能使用HWPF了,只能自己一點(diǎn)點(diǎn)的拼BIFF文件,這實(shí)在不好做,而且還不知道OLE進(jìn)去了能不能展示。
放棄之。PS:發(fā)現(xiàn)WSPH處理ppt的功能里有對(duì)ActiveX的簡(jiǎn)單支持。。。我去。。
第三個(gè)想法是拿到生成chart的數(shù)據(jù),直接用office的圖表功能,可惜的是發(fā)現(xiàn)HWPF里沒有這功能,HSSF處理excel的功能里才有。
最后一個(gè)方法比較簡(jiǎn)單可行,性能尚可,后臺(tái)用jfreechart生成圖片,然后生成word文檔。
壞處是,圖表風(fēng)格跟fusion不一致。jfree太丑了。但是這個(gè)方法是目前能想到最合適的方法了。
毫無(wú)疑問(wèn),只是一個(gè)很棘手的問(wèn)題。
fusionchart提供了服務(wù)端和客戶端生成圖片的功能,都是基于client端展示了flash以后做的。
朋友的項(xiàng)目是基于linux的,office本身的那套com機(jī)制是沒辦法通過(guò)jacob調(diào)用了。
純java的操作word,POI和docx4j,可以生成word文檔,table,插入圖片。
一個(gè)可行的思路是點(diǎn)擊下載報(bào)表時(shí),先在一個(gè)新頁(yè)面打開各個(gè)flash的圖表,再依次調(diào)用fusoinchart的功能在服務(wù)器端生成圖片,
最后js再調(diào)用servlet生成doc,同時(shí)把上一步生成的各個(gè)圖片插入到文檔內(nèi)。
這個(gè)曲線救國(guó)的策略性能非常低下,。
第二個(gè)想法是直接在word中插入flash,作為ole到word中的形式,同時(shí)跟其他內(nèi)容混排。這個(gè)方式應(yīng)該性能應(yīng)該是ok的,由word打開后去實(shí)時(shí)渲染flash。
但是發(fā)現(xiàn)word如果使用OLE doc的方式,不能使用HWPF了,只能自己一點(diǎn)點(diǎn)的拼BIFF文件,這實(shí)在不好做,而且還不知道OLE進(jìn)去了能不能展示。
放棄之。PS:發(fā)現(xiàn)WSPH處理ppt的功能里有對(duì)ActiveX的簡(jiǎn)單支持。。。我去。。
第三個(gè)想法是拿到生成chart的數(shù)據(jù),直接用office的圖表功能,可惜的是發(fā)現(xiàn)HWPF里沒有這功能,HSSF處理excel的功能里才有。
最后一個(gè)方法比較簡(jiǎn)單可行,性能尚可,后臺(tái)用jfreechart生成圖片,然后生成word文檔。
壞處是,圖表風(fēng)格跟fusion不一致。jfree太丑了。但是這個(gè)方法是目前能想到最合適的方法了。
您可能感興趣的文章:
- java使用POI實(shí)現(xiàn)html和word相互轉(zhuǎn)換
- Java使用poi將word轉(zhuǎn)換為html
- java實(shí)現(xiàn)word文件轉(zhuǎn)html文件
- java導(dǎo)出生成word的簡(jiǎn)單方法
- java使用poi讀取ppt文件和poi讀取excel、word示例
- 實(shí)例講解Java讀取一般文本文件和word文檔的方法
- 使用Java讀取Word文件的簡(jiǎn)單例子分享
- java使用Jsoup組件生成word文檔
- java簡(jiǎn)單操作word實(shí)例
- Java用freemarker導(dǎo)出word實(shí)用示例
- Java實(shí)現(xiàn)將word轉(zhuǎn)換為html的方法示例【doc與docx格式】
相關(guān)文章
springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決
這篇文章主要介紹了springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot整合Redis哨兵模式的實(shí)現(xiàn)示例
Redis哨兵模式是Redis高可用方案的一種實(shí)現(xiàn)方式,通過(guò)哨兵來(lái)自動(dòng)實(shí)現(xiàn)故障轉(zhuǎn)移,從而保證高可用,本文主要介紹了SpringBoot整合Redis哨兵模式的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02淺談springboot中tk.mapper代碼生成器的用法說(shuō)明
這篇文章主要介紹了淺談springboot中tk.mapper代碼生成器的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09詳解Java中布隆過(guò)濾器(Bloom Filter)原理及其使用場(chǎng)景
布隆過(guò)濾器是1970年由布隆提出的,它實(shí)際上是一個(gè)很長(zhǎng)的二進(jìn)制向量和一系列隨機(jī)映射函數(shù),它的作用是檢索一個(gè)元素是否存在我們的集合之中,本文給大家詳細(xì)的講解一下布隆過(guò)濾器,感興趣的同學(xué)可以參考閱讀2023-05-05java多線程編程之InheritableThreadLocal
這篇文章主要為大家詳細(xì)介紹了java多線程編程之InheritableThreadLocal,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Java 實(shí)現(xiàn)定時(shí)任務(wù)的三種方法
這篇文章主要介紹了Java 實(shí)現(xiàn)定時(shí)任務(wù)的三種方法,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03