文档章节

用jxcell导出图表到excel

AlexKuong
 AlexKuong
发布于 2015/03/06 10:08
字数 779
阅读 173
收藏 0


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

© 著作权归作者所有

AlexKuong
粉丝 0
博文 3
码字总数 2208
作品 0
珠海
私信 提问
JAVA导出Excel并设置Excel的打开密码

各位大侠们有什么好的方法么,一开始我用的jxcell,不过这东西付费的,感觉很不爽!!!求救啊 !!!!!!!!!!!!!!!!俺是个新人,求真相!!!!!

么么
2011/07/28
1K
5
highcharts教程:调用Excel.Application实现图表数据导出至EXCEL

highcharts教程之highcharts线性图结合浏览器调用Excel.Application完美实现图表数据导出至Excel。 highcharts图表数据的保存我们知道的有很多种,最常见的是以下3种: 1、导出成为图片文件:...

小白兔灰太狼
2014/05/16
5.1K
0
Python有趣|数据可视化那些事(一)

Excel可视化步骤 上文我们使用了pandas可视化,其就是matplotlib库的封装,其优点就是简单粗暴,但相应的确定也是很多的。不美观,做出来的图是这样的;而且功能不强大,例如设置刻度,XY轴等...

罗罗攀
03/30
0
0
SpreadJS 表格控件发布 V11 版本,新增图表及前端 PDF 导出

日前,全球最大的控件提供商葡萄城宣布,SpreadJS 纯前端表格控件正式发布V11 版本。新版本亮点颇多,不但为用户带来期待已久的图表功能,还新增前端导出 PDF、列分组等功能,在数据可视化方...

葡萄城技术团队
2017/12/08
815
2
新一代的HTML5/JS UI控件Wijmo Enterprise 2015 v3全新发布|附下载

Wijmo Enterprise是为企业应用程序开发而推出的一系列包含HTML5和JavaScript的开发控件。 其中包含了金融图表和FlexSheet以及先进的JavaScript控件(Wijmo 5)和经典的jQuery小部件(Wijmo 3...

Miss_Hello_World
2015/12/09
76
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部