導航:首頁 > 編程語言 > java圖形報表

java圖形報表

發布時間:2023-05-29 15:12:54

java怎麼做報表功能

使用 JFreeChart 生成各種樣式的圖表
限於篇幅的問題我們在這里只實現兩種常用的圖表,其他類型圖表讀者可以觸類旁通。我們先給出柱狀圖的實現,餅圖的實現再來跟柱狀圖進行比較。

1 柱狀圖
package lius.chart.demo;
import java.io.*;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
/**
* 該類用於演示最簡單的柱狀圖生成
* @author Winter Lau
*/
public class BarChartDemo {
public static void main(String[] args) throws IOException{
CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果產量圖", // 圖表標題
"水果", // 目錄軸的顯示標簽
"產量", // 數值軸的顯示標簽
dataset, // 數據集
PlotOrientation.VERTICAL, // 圖表方向:水平、垂直
true, // 是否顯示圖例(對於簡單的柱狀圖必須是 false)
false, // 是否生成工具
false // 是否生成 URL 鏈接
);

FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}
/**
* 獲取一個演示用的簡單數據集對象
* @return
*/
private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, null, "蘋果");
dataset.addValue(200, null, "梨子");
dataset.addValue(300, null, "葡萄");
dataset.addValue(400, null, "香蕉");
dataset.addValue(500, null, "荔枝");
return dataset;
}
/**
* 獲取一個演示用的組合數據集對象
* @return
*/
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "蘋果");
dataset.addValue(100, "上海", "蘋果");
dataset.addValue(100, "廣州", "蘋果");
dataset.addValue(200, "北京", "梨子");
dataset.addValue(200, "上海", "梨子");
dataset.addValue(200, "廣州", "梨子");
dataset.addValue(300, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(300, "廣州", "葡萄");
dataset.addValue(400, "北京", "香蕉");
dataset.addValue(400, "上海", "香蕉");
dataset.addValue(400, "廣州", "香蕉");
dataset.addValue(500, "北京", "荔枝");
dataset.addValue(500, "上海", "荔枝");
dataset.addValue(500, "廣州", "荔枝");
return dataset;
}
}

2 餅圖
package lius.chart.demo;
import java.io.*;
import org.jfree.data.*;
import org.jfree.chart.*;
/**
* 用於演示餅圖的生成
* @author Winter Lau
*/
public class PieChartDemo {
public static void main(String[] args) throws IOException{
DefaultPieDataset data = getDataSet();
JFreeChart chart = ChartFactory.createPie3DChart("水果產量圖", // 圖表標題
data,
true, // 是否顯示圖例
false,
false
);
// 寫圖表對象到文件,參照柱狀圖生成源碼
}
/**
* 獲取一個演示用的簡單數據集對象
* @return
*/
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("蘋果",100);
dataset.setValue("梨子",200);
dataset.setValue("葡萄",300);
dataset.setValue("香蕉",400);
dataset.setValue("荔枝",500);
return dataset;
}
}
3將生成的圖表移到瀏覽器上
package lius.chart.demo;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import org.jfree.data.*;
import org.jfree.chart.*;
/**
* 演示通過 servlet 直接輸出圖表
* @author Winter Lau
*/
public class ChartDemoServlet extends HttpServlet {
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
res.setContentType("image/jpeg");
DefaultPieDataset data = getDataSet();
JFreeChart chart = ChartFactory.createPie3DChart("水果產量圖",
data,
true,
false,
false
);

ChartUtilities.writeChartAsJPEG(res.getOutputStream(),
100,chart,400,300,null);
}
/**
* 獲取一個演示用的簡單數據集對象
* @return
*/
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("蘋果",100);
dataset.setValue("梨子",200);
dataset.setValue("葡萄",300);
dataset.setValue("香蕉",400);
dataset.setValue("荔枝",500);
return dataset;
}
}

4高級主題
很多情況我們不僅僅要求可以在瀏覽器上顯示一個圖表,我們更需要客戶可以直接在圖表上做一下交互的操作,例如獲取信息提示,點擊圖表某個部分進行更詳細信息的展示等等。例如前面生成的簡單柱狀圖,用戶需要在看到柱狀圖後點擊某種水果例如是蘋果即可看到各個地區蘋果產量的情況。為此就要求該圖形具有交互操作的功能。在 HTML 中為了讓一個圖像具有可交互的功能就必須給該圖像定義一個 Map 對象。下表節選一段具有該功能的 HTML 代碼:
<MAP NAME="chartMap">
<AREA SHAPE="RECT" COORDS="81,15,126,254" href="?series=0&category=100"
title="100 = 7,048"
onclick="javascript:clickChart('100');return false;">
<AREA SHAPE="RECT" COORDS="143,27,188,255" href="?series=0&category=200"
title="200 = 6,721"
onclick="javascript: clickChart ('200');return false;">
<AREA SHAPE="RECT" COORDS="205,54,250,255" href="?series=0&category=300"
title="300 = 5,929"
onclick="javascript: clickChart ('300');return false;">
<AREA SHAPE="RECT" COORDS="267,85,312,255" href="?series=0&category=400"
title="400 = 5,005"
onclick="javascript: clickChart ('400');return false;">
<AREA SHAPE="RECT" COORDS="329,17,374,255" href="?series=0&category=Diet"
title="Diet = 7,017" onclick="javascript:
clickChart ('Diet');return false;">
</MAP>

由此就產生了一個問題:如果根據一個圖像來生成對應的 MAP 對象。我們回頭看看剛才的代碼,在創建一個圖表對象時候有兩個參數,我們舉柱狀圖的例子來講這兩個參數就是 ChartFactory. createBarChart3D 方法中的最後兩個參數,這兩個參數的類型都是布爾值。這兩個參數意思分別是:是否創建工具提示 (tooltip) 以及是否生成 URL。這兩個參數分別對應著 MAP 中一個 AREA 的 title 屬性以及 href 屬性。
可是我想知道的是怎麼來產生這個 MAP 啊!哈哈,不要著急,JFreeChart 已經幫我們做好生成 MAP 對象的功能。為了生成 MAP 對象就要引入另外一個對象:ChartRenderingInfo。因為 JFreeChart 沒有直接的方法利用一個圖表對象直接生成 MAP 數據,它需要一個中間對象來過渡,這個對象就是 ChartRenderingInfo。

⑵ 最理想的JAVA報表工具有哪些

JasperReports是一個基於Java的開源報表工具,它可以在Java環境下像其它IDE報表工具一樣來製作報表。JasperReports
支持pdf、HTML、XLS、CSV和XML文件輸出格式。JasperReports是當前Java開發者最常用的報表工具。

Pentaho是一個以工作
流為核心的、強調面向解決方案而非工具組件的BI套件,整合了多個開源項目,目標是和商業BI相抗衡。它偏向於與業務流程相結合的BI解決方案,側重於大
中型企業應用。它允許商業分析人員或開發人員創建報表,儀表盤,分析模型,商業規則和 BI 流程。

功能和特點
◆ 工作流引擎:Shark and JaWE
◆ 資料庫:Firebird RDBMS

集成管理和開發環境:Eclipse
◆ 報表工具:Eclipse BIRT
◆ ETL工具:Enhydra/Kettle
◆ OLAP
Server:Mondrian
◆ OLAP展示:JPivot
◆ 數據挖掘組件:Weka

應用伺服器和Portal伺服器:JBoss
◆ 單點登陸服務及LDap認證:JOSSO
◆ 自定義腳本支持:Mozilla Rhino
Javascript腳本處理器

OpenReports
是一個基於web的報表解決方案,可為用戶提供通過瀏覽器查看動態創建的PDF、HTML或XLS格式報表的能力。OpenReports
使用Java開發的,並使用JasperReports作為報表生成引擎。

JFreeReport (現改名為 Pentaho
Reporting)是一個用來生成報表的Java類庫。它為Java應用程序提供一個靈活的列印功能並支持輸出到列印機和PDF, Excel,
HTML和XHTML, PlainText, XML和CSV文件中。

XLS是基於Jakarta POI
API的Excel報表生成工具,可以生成精美的Excel格式報表。它採用標簽的方式,類似JSP標簽,寫一個Excel模板,然後生成報表,非常靈活,簡單!

BIRT是一個Eclipse-based開放源代碼報表系統。它主要是用在基於Java與J2EE的Web應用程序上。BIRT主要由兩部分組成:一個是基於Eclipse的報表設計和一個可以加到你應用服務的運行期組件。BIRT同時也提供一個圖形報表製作引擎。

個人用過 JFreeReport JasperReports 感覺比較容易上手

⑶ 怎麼用java報表工具製作出一份好看的報表

那我比較熟悉的finereport來給題主解釋下吧。報嘩伍咐表設計的製作步驟基本上橘畝是這樣的:
1、新建數據連接;
2、新建模板與數據集;
3、模板樣式設計及數據綁定;
4、模板預覽效果查看。
數據集:將資料庫中數據取出來,顯示在finereport設計器界面上,可直接使用的數據顯示方式。
模板數據集:使用范圍僅限於當前模板的數據集。
伺服器數據集:使用范圍包括工程下面的所有模板。
模板預覽方式:分頁預覽:普通預覽模式,用來查看數據展示模板;
填報預覽:op=write,不亂純僅可以用來查看報表,還可進行數據錄用操作;
數據分析:op=view,可以對報表結果進行不分頁預覽及在線分析,排序,二次過濾等。

⑷ java 有哪些免費報表工具啊,可以報表列印。

推薦潤乾報表,潤乾報表今年有推出免費版,可以從潤乾報表官網下載試用

潤乾報表設計頁面是類似excel的,而且內置了很多常用函數,更便於繪制報表。而且提供了三種列印方式:applet、pdf、flash供用戶選擇使用,批量列印方面支持applet和pdf兩種列印方式。

⑸ java圖形報表用jsp做,代碼沒有問題,但是在項目用運行不出來,我用的是ssh框架做的,改怎麼解決

/陵敬仿medicamanagess/DisplayChart.action?filename=jfreechart-12086........
少了.action吧
錯誤是There is no Action mapped for namespace / and action name DisplayChart.不是圖片的問題稿激,這個action有問題,路徑沒寫對,需要詳解尺纖的話把struts.xml貼出來

⑹ java web動態圖形報表工具推薦

FineReport就是純java編寫的報表工具,有豐富的圖表功能,不僅提供了常見的圖表類型。其中包括:條形圖、柱狀圖、折線圖、面積圖、餅圖、散點圖、雷達圖、儀表盤等,還支持多種類型的組合顯示,並可以集成第三方圖表。

⑺ 公司有一個java項目要用到報表統計,小弟對報表二字理解不是很深,只知道用來顯示數據

從EXCEL到FineReport
以下摘自報表工具帆軟FineReport:
這年頭,excel真是個好用的東西,不管是什麼項目,最終用戶總會要求把報表導出到excel,不僅僅數據要導出,格式也要導出,樣式還不能失真,實在煩死了程序員。更有甚者,不少最終用戶在項目需求的初期,就給程序員提供了一大堆的excel表樣,還理直氣壯的說,看,表樣都給你們畫好了,你們可以直接用,不需要畫表樣了。一句話足可以讓你啞巴吃黃連,有苦說不出。
FineReport報表在研究了幾千張中國式報表的基礎上,提出了一套完整的數學模型,終於把類excel的界面模型和資料庫的二維物理表有機的結合起來了,不僅僅解決了動態行列的問題,還解決了跨行組運算的問題,可以說從根本上解決了中國式報表無規則表樣和無規則運算的問題。操作也非常簡單,花個幾分鍾配置下伺服器,然後就是做模版,接著就剩直接COPY了。

⑻ java報表怎麼做

用我現在用的finereport來和題主說下餅圖吧,它也是web報表工具。

打開報表,設置百分比數據模板

符合餅圖和復合條餅圖只支持百分比的系列分隔方式,因此我們計算每個地區的應付金額所佔比例是多少,隱藏B列,在C1中輸入佔比,C2中輸入公式:=B2/SUM(B2[!0]),B2[!0]是B2擴展出來的所有單元格,根據情況設置單元格樣式等操作。

下面以製作符合餅圖為例,選中圖表,勾線圖表屬性表-樣式>系列中的第二繪圖區,將第二繪圖區小於百分比的數據改為10,默認為5,表示第二繪圖區包含所有小於該百分比的值為:如下圖:

根據情況可設置系列標簽樣式,勾選圖表屬性表-樣式>標簽中的標簽,選中值,設置格式,百分比保留兩位小數。

修改圖表數據

修改圖表屬性表-數據>圖例項值為C2單元格,復合餅圖則可設置完成。

預覽與保存

保存模板,點擊分頁預覽,即可看到效果。

⑼ 用什麼插件在java做報表

個人推薦用echarts,這個插件是網路的開源插件,效果相當不錯文檔完善使用方便,本人目前也在使用,有對應的ECharts - Java類庫,ECharts-Java是一個供Java開發使用的ECharts的開發包,主要目的是方便在Java中構造ECharts中可能用到的全部數據結構,如完整的結構 Option。(http://echarts..com/是對應的官網)希望能夠幫到您。

⑽ java做圖形報表.哪個插件好

用java做嗎,還是js啊
java的或鄭州報表喊手蔽用poi,圖形用itext
web端的話百薯滲度的echart

閱讀全文

與java圖形報表相關的資料

熱點內容
徐英演的哪些大尺度電影 瀏覽:412
鬼片英文版 瀏覽:600
《前度2》完整未刪減 瀏覽:851
大陸類似春的森林電影 瀏覽:526
1受多攻獸世 瀏覽:849
軍嫂肉文 瀏覽:935
javamariadb 瀏覽:876
未刪減的網站在線觀看 瀏覽:899
雞雞加長叫什麼電影 瀏覽:387
愛情電影網址 瀏覽:726
激情戲愛情電影 瀏覽:51
哪裡可以免費在線看輕小說 瀏覽:61
李采譚演的韓國論理 瀏覽:962
男男攻是軍人 瀏覽:617
今天實時票房 瀏覽:634
葉倩桐天地之間有聲mp3 瀏覽:143
風月片成人 瀏覽:523
女孩學樂高編程機器人 瀏覽:236
求網站 瀏覽:159
穿越平行世界多妻制 瀏覽:109