如何用java代码做报表 如何用java代码做报表分析

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;
【如何用java代码做报表 如何用java代码做报表分析】}
}
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 = https://www.04ip.com/post/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 = https://www.04ip.com/post/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="https://www.04ip.com/post/?series=0category=100"
title="100 = 7,048"
onclick="javascript:clickChart('100');return false;"
AREA SHAPE="RECT" COORDS="143,27,188,255" href="https://www.04ip.com/post/?series=0category=200"
title="200 = 6,721"
onclick="javascript: clickChart ('200');return false;"
AREA SHAPE="RECT" COORDS="205,54,250,255" href="https://www.04ip.com/post/?series=0category=300"
title="300 = 5,929"
onclick="javascript: clickChart ('300');return false;"
AREA SHAPE="RECT" COORDS="267,85,312,255" href="https://www.04ip.com/post/?series=0category=400"
title="400 = 5,005"
onclick="javascript: clickChart ('400');return false;"
AREA SHAPE="RECT" COORDS="329,17,374,255" href="https://www.04ip.com/post/?series=0category=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如何实现数据量大的报表进行多维度统计和排名1、首先打开电脑,并点击主页面上方的java 。
2、其次进入主页面,选择数据量大的报表 。
3、最后点击右上角的工具栏,选择多维度排序和统计按钮即可 。
怎么用java报表工具制作出一份好看的报表那我比较熟悉的finereport来给题主解释下吧 。报表设计的制作步骤基本上是这样的如何用java代码做报表:
1、新建数据连接;
2、新建模板与数据集;
3、模板样式设计及数据绑定;
4、模板预览效果查看 。
数据集如何用java代码做报表:将数据库中数据取出来如何用java代码做报表 , 显示在finereport设计器界面上如何用java代码做报表 , 可直接使用的数据显示方式 。
模板数据集:使用范围仅限于当前模板的数据集 。
服务器数据集:使用范围包括工程下面的所有模板 。
模板预览方式:分页预览:普通预览模式,用来查看数据展示模板;
填报预览:op=write,不仅可以用来查看报表,还可进行数据录用操作;
数据分析:op=view,可以对报表结果进行不分页预览及在线分析,排序,二次过滤等 。
关于如何用java代码做报表和如何用java代码做报表分析的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读