import java.awt.Color;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.jxcell.ChartFormat;
import com.jxcell.ChartShape;
import com.jxcell.RangeRef;
import com.jxcell.View;

public class Test {
    /**
     * 此demo用不到,但是要出现导出时提醒保存,自己选择地址时需要
     * @param  args
     */
    //protected HttpServletRequest request;
    //protected HttpServletResponse response;
    
      public static void main(String args[])
        {

View m_view = new View();

RangeRef newRange = null;

try {
                m_view.getLock();
                //标题 setTextAsValue(行,列,值);
                m_view.setTextAsValue(1,2,"Jan");
                m_view.setTextAsValue(1,3,"Feb");
                m_view.setTextAsValue(1,4,"Mar");
                m_view.setTextAsValue(1,5,"Apr");
                //分项
                m_view.setTextAsValue(2,1,"香蕉");
                m_view.setTextAsValue(3,1,"大鸭梨");
                m_view.setTextAsValue(4,1,"芒果");
                m_view.setTextAsValue(5,1,"水果1");
                m_view.setTextAsValue(6,1,"水果2");
                m_view.setTextAsValue(7,1,"共计");
                //
                m_view.setTextAsValue(1,6,"time");
                m_view.setNumber(2,6,1);
                m_view.setNumber(3,6,2);
                m_view.setNumber(4,6,3);
                m_view.setNumber(5,6,4);
                m_view.setNumber(6,6,5);
                m_view.setNumber(7,6,6);

int [] a={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
                int i=0;
                //数据区域随机赋值
                for(int row = 2; row <= 6; row++)
                for(int col = 2; col <= 5; col++)
               // for(int i=1;i<=a.length;i++)
                          m_view.setNumber(row,col,a[i++]);
//                        m_view.setFormula(row, col, "rand()");//rand()为excle随机函数
                //设置公式
                m_view.setFormula(7, 2, "SUM(C3:C7)");
                //选中单元格区域
                m_view.setSelection("C8:F8");
                //编辑复制 向右复制
                m_view.editCopyRight();

//绘图区坐标addChart(左上列x,左上行y,右下列x,右下行y)
                ChartShape chart = m_view.addChart(2, 11.1, 10, 25.4);
                //图标形式
                chart.setChartType(ChartShape.TypeLine);
                /*
                TypeBar:横向柱状图
                TypePie:饼状图
                TypeColumn:柱状图
                TypeLine:线状图
                TypeArea:面积图
                TypeDoughnut:圈图
                TypeScatter:线点图
                TypeBubble:没怎么看懂,就是一个灰图,不过查阅资料,貌似是泡状图
                */

//设置连接区域
                chart.setLinkRange("Sheet1!$C$2", false);

//添加一个系列
                chart.addSeries();
                //系列名字
                chart.setSeriesName(0, "Sheet1!$C$2");
                //系列值
                chart.setSeriesYValueFormula(0, "Sheet1!$C$3:$C$7");
                //系列分类
                chart.setCategoryFormula("Sheet1!$B$3:$B$7");

chart.addSeries();
                chart.setSeriesName(1, "Sheet1!$D$2");
                chart.setSeriesYValueFormula(1, "Sheet1!$D$3:$D$7");

chart.addSeries();
                chart.setSeriesName(2, "Sheet1!$E$2");
                chart.setSeriesYValueFormula(2, "Sheet1!$E$3:$E$7");

chart.addSeries();
                chart.setSeriesName(3, "Sheet1!$F$2");
                chart.setSeriesYValueFormula(3, "Sheet1!$F$3:$F$7");

//                chart.getChart().validateData();

//设置横坐标标题
                chart.setAxisTitle(ChartShape.XAxis, 0, "横坐标标题");
                //设置纵坐标标题
                chart.setAxisTitle(ChartShape.YAxis, 0, "纵坐标标题");

//设置图表样式
                ChartFormat cf = chart.getChartFormat();
                //设置背景色
                cf.setPattern((short)1);
                cf.setPatternFG(Color.LIGHT_GRAY.getRGB());
                chart.setChartFormat(cf);
                //设置绘图区颜色
                cf = chart.getPlotFormat();
                cf.setPattern((short)1);
                cf.setPatternFG(new Color(204, 255, 255).getRGB());
                chart.setPlotFormat(cf);

//设置横坐标文字大小
                cf = chart.getAxisFormat(ChartShape.XAxis, 0);
                cf.setFontSizeInPoints(8.5);
                chart.setAxisFormat(ChartShape.XAxis, 0, cf);

//设置纵坐标文字大小
                cf = chart.getAxisFormat(ChartShape.YAxis, 0);
                cf.setFontSizeInPoints(8.5);
                chart.setAxisFormat(ChartShape.YAxis, 0, cf);

//设置图标内标线样式
                cf = chart.getSeriesFormat(0);//地0个
                cf.setLineStyle((short)1);
                cf.setLineWeight(3*20);
                cf.setLineColor((new Color(0, 0, 128)).getRGB());
                cf.setMarkerAuto(false);
                cf.setMarkerStyle((short)0);
                chart.setSeriesFormat(0, cf);

cf = chart.getSeriesFormat(1);
                cf.setLineStyle((short)1);
                cf.setLineWeight(3*20);
                cf.setLineColor((new Color(255, 0, 255)).getRGB());
                cf.setMarkerAuto(false);
                cf.setMarkerStyle((short)0);
                chart.setSeriesFormat(1, cf);

cf = chart.getSeriesFormat(2);
                cf.setLineStyle((short)1);
                cf.setLineWeight(3*20);
                cf.setLineColor((new Color(255, 255, 0)).getRGB());
                cf.setMarkerAuto(false);
                cf.setMarkerStyle((short)0);
                chart.setSeriesFormat(2, cf);

cf = chart.getSeriesFormat(3);
                cf.setLineStyle((short)1);
                cf.setLineWeight(3*20);
                cf.setLineColor((new Color(0, 255, 255)).getRGB());
                cf.setMarkerAuto(false);
                cf.setMarkerStyle((short)0);
                chart.setSeriesFormat(3, cf);

//主格网
                cf = chart.getMajorGridFormat(ChartShape.YAxis, 0);
                cf.setLineStyle((short)2);
                cf.setLineColor((new Color(255, 0, 0)).getRGB());
                cf.setLineAuto();
                chart.setMajorGridFormat(ChartShape.YAxis, 0, cf);

//图利位置
                chart.setLegendPosition(ChartFormat.LegendPlacementRight);

//图利样式
                cf = chart.getLegendFormat();
                cf.setFontBold(true);
                cf.setFontSizeInPoints(8);
                chart.setLegendFormat(cf);

String fileName = "";
                Date date = new Date();
                SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                fileName = df.format(date)+".xls";
                
                /**
                 * 此demo用不到,但是要出现导出时提醒保存,自己选择地址时需要
                 * @param  args
                 */
//                String fileNameTemp = new String(fileName.getBytes("UTF-8"),"ISO8859_1");
//                ServletOutputStream os = response.getOutputStream();
//                response.setCharacterEncoding("UTF-8");
//                response.addHeader("Content-type", "application/x-msexcel");
//                response.addHeader("Content-disposition", "attachment;filename="+fileNameTemp);
//                try {
//                    view.write(os);
//                } catch (CellException e) {
//                    e.printStackTrace();
//                }
//                os.println();
//                os.close();
//            }
                
                //excel写出路径
                m_view.write("f:\\"+fileName);
                System.out.println("end");
            }
            catch (Exception e) {
                System.out.println(e.getMessage());
            }
            finally
            {
                m_view.releaseLock();
            }
        }

}

技术交流群:126414257

转载于:https://my.oschina.net/AlexKuong/blog/383253

用jxcell导出图表到excel相关推荐

  1. java实现将数据生成图表至excel导出(包括折线图,柱状图,饼状图)

    1. 目的 根据已有数据,手动(java后台)生成图表至excel并导出.用于后台查询到数据后直接创建图表,可以代替直接使用图表信息字符串. 2. 说明 使用jfree图表绘制类库绘制图表,并生成到本 ...

  2. java实现将数据生成图表至excel导出

    https://www.jianshu.com/p/6c4f3832c396 1. 目的 根据已有数据,手动(java后台)生成图表至excel并导出.用于后台查询到数据后直接创建图表,可以代替直接使 ...

  3. C# 使用Epplus导出数据到Excel

    简介:Epplus是一个使用Open Office XML(Xlsx)文件格式,能读写Excel 2007/2010文件的开源组件 功效:支持对excel文档的汇入汇出,图表(excel自带的图表基本 ...

  4. PHP导出图表 ~~ PHPExcel

    利用PHPExcel导出Excel图表 PHPExcel导出Excel图表 示例代码 PHPExcel导出Excel图表 这里主要介绍饼状图.这个是在网上找的例子,虽然说是在Linux导出失败,尝试之 ...

  5. java导出为excel文件_java导出数据到excel文件

    有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...

  6. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...

    如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...

  7. arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表

    本文解决了小程序云开发导出数据到excel的bug,并给出了分析的过程,同时简化了程序为一个云函数,一个本地函数,逻辑更简单.文章结尾给出了完整源代码 小程序云开发为没有服务器的小程序开发者提供了便利 ...

  8. python输出数据到excel-python如何导出数据到excel文件

    python导出数据到excel文件的方法: 1.调用Workbook()对象中的add_sheet()方法wb = xlwt.Workbook() ws = wb.add_sheet('A Test ...

  9. python输出数据到excel-Python从数据库导出数据到Excel

    #coding=utf-8 import pymysql import xlwt import importlib,sys importlib.reload(sys) # __author__ = ' ...

最新文章

  1. C语言中自动变量栈的分配
  2. 机器学习中的双层规划问题
  3. 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同
  4. ABAP 的TABLE CONTROL实践积累
  5. Run-time Settings--General--Run Logic
  6. 最新报告:我国博士研究生累计招生已近150万!延毕率逐年上升
  7. 20151008_Android Application类
  8. 实验方法怎么写_小学作文怎么写?“把短句变长句”等3种方法帮孩子提高作文水平!...
  9. Golang优化之内存对齐
  10. 解决 No converter found for return value of type 的问题
  11. java drawline_JAVA drawLine()方法怎么用?
  12. 文石电子书设置外挂词典有声英文翻译
  13. 带有打开密码的压缩包如何解压
  14. 一步步解密微商城系统开发流程
  15. 清除异常关闭进程的任务栏托盘区残留图标
  16. 一个网站域名价值 1亿人民币,互联网寸土寸金!
  17. ubuntu14.04搭建smba共享
  18. 如何在本地搭建网站(图文教程)
  19. 全连接神经网络的BP算法(BP神经网络模型)与卷积神经网络的BP算法
  20. 内网穿透-uTools使用教程

热门文章

  1. java软考真题_2016年下半年软考程序员下午真题(3)
  2. 服务器上开虚拟机,可以在云服务器上开虚拟机
  3. 世界上最简单的会计书—读书笔记
  4. 徒手攀登酋长岩,世界第一人!
  5. java 正则 惰性匹配_js正则表达式惰性匹配和贪婪匹配用法分析
  6. 测试wince wifi漫游的方法(参考)
  7. quartz定时器的处理
  8. java数字猜大小游戏_Java之数字猜大小
  9. 如何做好公众号编辑—壹间网络
  10. 处理BigDecimal字段, java.math.BigDecimal cannot be cast to [Ljava.lang.Object;