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