jfreeChart生成报表图片到本地:

import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis3D;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis3D;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.junit.Test;
/**
 * 
 * @function:jfreeChart生成报表数据 
 * @desc:缺点 Linux环境下会出现乱码,win下没有问题。
 * @author:LLJ
 * @date:2018年12月20日 
 *
 */

@Test
    public static void createChart() {

//折线图数据
        DefaultCategoryDataset lineDataset = new DefaultCategoryDataset();
            //添加数据
            lineDataset.addValue(9, "", "新中大");
            lineDataset.addValue(7, "", "银色快车");
            lineDataset.addValue(6, "", "用友A");
            lineDataset.addValue(4, "", "用友B");
            lineDataset.addValue(3, "", "用友C");
            lineDataset.addValue(2, "", "用友G");

//柱状图数据
         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            //添加数据
            dataset.addValue(10, "", "新中大");
            dataset.addValue(7, "", "银色快车");
            dataset.addValue(6, "", "用友A");
            dataset.addValue(5, "", "用友B");
            dataset.addValue(3, "", "用友C");
            dataset.addValue(9, "", "用友G");

//生成的柱状图
          JFreeChart chart = ChartFactory.createBarChart3D(
                   "软件销量",
                   "名称",//X轴的标签 
                   "套数",//Y轴的标签 
                   dataset, //图标显示的数据集合
                   PlotOrientation.VERTICAL, //图像的显示形式(水平或者垂直)
                   false,//是否显示子标题 
                   false,//是否生成提示的标签 
                   false); //是否生成URL链接

/*
             * 处理图形上的乱码
             */

//处理主标题的乱码
            chart.getTitle().setFont(new Font("黑体",Font.BOLD,18));

//获取图表区域对象
            CategoryPlot categoryPlot = (CategoryPlot)chart.getPlot();

//获取X轴的对象
            CategoryAxis3D categoryAxis3D = (CategoryAxis3D)categoryPlot.getDomainAxis();

//获取Y轴的对象
            NumberAxis3D numberAxis3D = (NumberAxis3D)categoryPlot.getRangeAxis();

//处理X轴上的乱码
            categoryAxis3D.setTickLabelFont(new Font("黑体",Font.BOLD,10));

//处理X轴上的乱码
            categoryAxis3D.setLabelFont(new Font("黑体",Font.BOLD,10));

//处理X轴外的乱码
            numberAxis3D.setTickLabelFont(new Font("黑体",Font.BOLD,10));

//处理X轴外的乱码
            numberAxis3D.setLabelFont(new Font("黑体",Font.BOLD,10));

//自定义Y轴上显示的刻度,以10作为1格
            numberAxis3D.setAutoTickUnitSelection(false);
            NumberTickUnit unit = new NumberTickUnit(1); 
            numberAxis3D.setTickUnit(unit);

//获取绘图区域对象
            BarRenderer3D barRenderer3D = (BarRenderer3D)categoryPlot.getRenderer();

//设置柱形图的宽度
            barRenderer3D.setMaximumBarWidth(0.07);

//在图形上显示数字
            barRenderer3D.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            barRenderer3D.setBaseItemLabelsVisible(true);
            barRenderer3D.setBaseItemLabelFont(new Font("宋体",Font.BOLD,10));

/*
             * 放折线图数据
             */
            categoryPlot.setDataset(1, lineDataset);
            //设置折线
            LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
            lineandshaperenderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
            categoryPlot.setRenderer(1, lineandshaperenderer);
            // 柱状图和纵轴紧靠
            categoryAxis3D.setLowerMargin(0.0);

categoryAxis3D.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
          //折线在柱面前面显示
            categoryPlot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

// 在E盘目录下生成图片
            File file = new File("d:\\AppData\\image\\chart.png");  
            try {
                 ChartUtilities.saveChartAsJPEG(file, chart, 800, 600);
                } catch (IOException e) {
                   e.printStackTrace();
              }
}

控制层读取图片:

@RequestMapping("/chart")
    public String reportChart(HttpServletRequest req,ModelMap map){
    
        //生成图表
        ChartUtil.createChart();
            
        //读取并渲染
        map.addAttribute("pic","http://localhost:8080/zdcrm/image/" + "chart.png");
       
        return "reportForms/reportChart";
        
    }

渲染:

<div align="center">
        <img width="50%" height="50%" src="${basePath}${pic}" alt="报表">
    </div>

jfreeChart生成报表相关推荐

  1. freemarker+Jfreechart生成Word文档(含图片)

    这几天再弄一个报表,要统计一些信息最终的部分展示结果如下: 基本工具freemarker,jfreechart 工程的部分结构如下 与生成Word有关的类主要有FreemarkerConfigurat ...

  2. java使用ireport生成报表_JasperReport(3)——Java简单使用IReport生成的文件建立报表...

    先看看设计的报表样式: reportTitle是新添加的一个参数,而其他的id和name是通过数据源得到的Filed.IReport在设置参数的时候需要先在左边新建一个parameter,然后再把该p ...

  3. 用MS SQL Reporting Services生成报表

    灵活的报表功能是大多数业务应用程序的一个要求,这些报表功能在集成到 Web 应用程序中之后用途更加广泛.利用 SQL Server® 2000 Reporting Services 的最新版本,您可以 ...

  4. 使用FastReport报表工具生成报表PDF文档

    在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...

  5. 使用Excel连接WINCC生成报表的实现方法

    WINCC自带的报表功能,在工程应用上不太适合国人的风格,所以就想借用强大的excel表格功能来制作灵活多变的丰富的报表.使用Excel的VBA功能实现和WINCC的变量建立连接,实现数据查询,可实现 ...

  6. java cutline_利用JFreeChart生成饼形图

    14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如果想生成普通效果的饼形图,需要通过工厂类ChartFactory的 ...

  7. python生成报表并打印_使用expect+python拉取数据并生成报表

    虽然脚本周一的时候就写好了,但是昨天才是第一次正式使用.加上昨天写了第二篇shell的tips,所以expect+python的脚本gen_report今天才写. 首先说一下背景.由于工作需要,有时我 ...

  8. python根据excel生成报表_python生成Excel图表(通过xlsxwriter)

    前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xlsx ...

  9. Smartbi自定义生成报表-制作流程

    Smartbi自定义生成报表,分析报告制作的流程: 模板准备 制作分析报告的第一步,准备要制作分析报告的模板,以便对要制作的内容有所评估. ● 制作模板:根据分析报告的主题.需求制作模板. ● 现有模 ...

  10. java JFreechart开发报表的实例demo下载

    原文:java JFreechart开发报表的实例demo下载 源代码下载地址:http://www.zuidaima.com/share/1550463472110592.htm 运行效果图如下: ...

最新文章

  1. 西南科技大学 计算机组成原理2011-2012,西南科技大学计算机组成原理2010-2011试卷A卷参考答案(2011)...
  2. golang 函数指针相等比较
  3. 如果张东升是个程序员
  4. python普通菜单_python多级菜单
  5. 丢掉xml使用JavaConfig配置Spring
  6. java泛型_Java核心知识 基础五 JAVA 泛型
  7. 主成分分析(PCA)-最大方差解释
  8. 遇到的几个开机启动故障
  9. python调用rest api_调用rest api使用python将数据推送到运动学
  10. 美国签证过不了,ICLR 2020搬到埃塞俄比亚,同性恋学者:不去,保命要紧
  11. Ubuntu无法进入操作系统的恢复和备份操作
  12. Linux命令j解释之cp
  13. 源码分析之String
  14. Ubuntu18 yolov5使用ncnn部署
  15. python整体设计目标怎么写_设计模式及Python实现
  16. 安装的Mac Windows双系统,Mac分区的空间太小/太大了,有什么办法调整吗?
  17. Nginx下配置Https,测试环境的完整过程
  18. 关于证明PAC可学习
  19. 基于EGE的双人象棋
  20. 组网技术—VLANTRUNKVTP

热门文章

  1. OPPO Reno6 6Pro刷root强解BL锁 oppo reno6 Root教程
  2. 软件可靠性方法 学习笔记
  3. Mimics 21.0软件学习笔记(一)基本操作
  4. 【Codecs系列】视频格式国际标准:BT601/BT709/BT2020
  5. 西门子博途v14 SP1 S7-1200之间的以太网双边通讯(两个S7-1200 在一个项目中)
  6. java 生成war包_java利用Ant脚本生成war包全过程
  7. war、jar、ear文件对比
  8. 华中科技大学伍冬睿教授团队:生理计算中的对抗攻击与防御综述
  9. 89C51使用ADC0808模数转换
  10. 图形推理1000题pdf_公务员考试:遇到图形推理题就烦恼?5招教你练成最强大脑...