WEB开发网
开发学院软件开发Java 使用jxl生成带动态折线图的excel 阅读

使用jxl生成带动态折线图的excel

 2013-03-12 15:36:50 来源:开发学院   
核心提示: 生成excel折线表分为两种情况,第一种:格式固定,使用jxl生成带动态折线图的excel,数据变动,第二种:格式变动,还有一种解决方法,同样要定义名称,数据亦变动, 废话不多说
 生成excel折线表分为两种情况,第一种:格式固定,数据变动。第二种:格式变动,数据亦变动。
    废话不多说,先介绍第一种。想了解此方法之前须对microsoft excel 如何使用表格中的数据生成折线图。
如图一组数据
                            
然后在excel做如下操作:
             
最后选择生成的折线图点击右键->选择数据->鼠标选择数据区域然后确定,折线图出来了:
             
 
说到这里聪明的小屌丝应该了解了第一种方法:格式固定,数据变动。图形生成以后我们只要用jxl对表格中的数据进行改动,就可以获取我们想要的折线图。
    下面讲解第二种情况:第一种:格式变动,数据变动。这种情况经常看到,是重点也是难点,本屌整理了几处网上仅有资料,终于搞懂了。
格式变动即要用于生成折线图的数据的行和列都是变动的,这里的变动包括行数或列数的变动(反应到折线图上就是坐标点个数的增减)以及表格数据的变动。这里就有必要引入excel中的一个概念——名称。如果不想了解那么详细的话就听本屌一句话:所谓名称就是在excel中存在的类似于java变量的一个东西,execel变量当然就是表格中的数据,特别之处是名称不仅可以代表一个表格,还可以代表一个表格域。详细了解请访问:http://wenku.baidu.com/view/04842a03cc17552707220884.html
举例说明一下:如下图
                    
随着月份的增加789···月份的利润数据也会获取,这是就需要使用名称,在excel中点击公式选项卡——>名称管理器——>新建名称,无图无真相:
                  
新建名称 month=OFFSET(Sheet1!$A$1,1,0,COUNTA(Sheet1!$A:$A)-1,1)
     profit==OFFSET(Sheet1!$B$1,1,0,COUNTA(Sheet1!$B:$B)-1,1)
如右图:            
 
其中不得不解释一下offset(o1,o2,o3,o4,o5)和counta(c)
    o1  可以看成一个标准点,后面四个变量都是建立在此标准点的对比数据
    o2  如 5 表示在标准点一下第五个的位置
    o3  如 5 表示在标准点右边第五个位置
    o4  如 5 结合o1 o2 o3 三个函数生成的点,往下横跨5行。
    o5  如 5 结合 o1 o2 o3 三个函数生成的点,往右边跨5行。
    对于counta函数 是计数c代表的一个区域非空的数量。屌丝们可以测试一下在一个单元格中输入 “=Counta(A1:A5)” 确定之后就表示从A1到A5不为空的单元格的数量
 
下面继续讲解:插入一个折线图。右键选择数据->添加->确定->右侧编辑如下图(b.xls为excel文件名)
          
      此处是使用第一列的数据作为x轴坐标数据。
      接下来确定y轴数据
      点击左侧编辑,you say dick without a pic:
               
确定之后奇迹发生,折线图形成,试着在数据下方再加一组数据,当然在实际应用中这种数据是通过jxl加进去的,不只是这个数据,上面给出的所有数据都是通过jxl加进去的。Pic:
                
折线图变化,说明Success!congratulations!最终图:
 
              
 
嫌太单调? 邮件-》设置图标区域格式-》填充一下 pic:
            
    另外除了对于第二种情况,还有一种解决方法,同样要定义名称,但名称的初始化在程序中使用jxl函数进行,这里本屌只做抛砖引玉:

      使用到的函数为:WritableWorkBook中的 addNameArea(name,sheet,x,y,width,height); 

Tags:使用 jxl 生成

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接