java绘制excel图表(jxcell)
2015-02-28 16:14
148 查看
java语言利用jxcell.jar 绘制excel图表( 柱状图)
-## 标题 ##-
因为需求需要利用java绘制图表找了很多资料最后找到了jxcell可以做这方面的东西 jxcell还可以直接调用excel的公式等。非常不错下面给下载连接以及相关出处。代码放到java环境右键运行就可以。
下载链接:http://download.csdn.net/detail/liujinxin33/8462879
相关代码:
运行截图
本人也是刚刚接触有的地方理解的还不到位,希望各路大婶给与指导,另外附上资料出处
/article/9129453.html
同时感谢 opzoonzhuzhengke 的分享与整理。
-## 标题 ##-
因为需求需要利用java绘制图表找了很多资料最后找到了jxcell可以做这方面的东西 jxcell还可以直接调用excel的公式等。非常不错下面给下载连接以及相关出处。代码放到java环境右键运行就可以。
下载链接:http://download.csdn.net/detail/liujinxin33/8462879
相关代码:
import com.jxcell.*; import java.awt.*; public class ChartFormatTest { 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); //数据区域随机赋值 for(int col = 2; col <= 5; col++) for(int row = 2; row <= 7; row++) 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(0, 9.1, 7, 20.4); //图标形式 chart.setChartType(ChartShape.TypeLine); /* TypeBar:横向柱状图 TypePie:饼状图 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); //excel写出路径 m_view.write("c:\\out.xls"); System.out.println("end"); } catch (Exception e) { System.out.println(e.getMessage()); } finally { m_view.releaseLock(); } } }
运行截图
本人也是刚刚接触有的地方理解的还不到位,希望各路大婶给与指导,另外附上资料出处
/article/9129453.html
同时感谢 opzoonzhuzhengke 的分享与整理。
相关文章推荐
- JXCELL实例学习与研究(二) 之 EXCEL中各种图表格式的显示 超链接(链接到另外的单元格、WEBSITE、E-MAIL、本地磁盘/文件)
- 利用FusionCharts将Excel绘制成动态图表
- 《Excel 数据之美--科学图表与商业图表的绘制》
- Excel图表—超几何分布函数的概率分布图的绘制
- Excel应用-使用VBA自动绘制所有适用类型的Excel图表(代码及效果图)
- 基于JAVA操作Excel图表
- Excel图表—正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制-Part 2
- 为什么选择Excel绘制论文图表
- PHPExcel探索之旅---阶段三 绘制图表
- Excel图表—泊松分布函数的概率分布图的绘制
- 【python】 读取Excel文件并绘制图表
- 【python】 读取Excel文件并绘制图表
- 【python】 读取Excel文件并绘制图表
- JAVA生成EXCEL图表
- Java图表绘制和操作excel表格
- Java绘制图表框架JFreeChart入门
- JAVA平台开放图表绘制类库——JFreeChart
- Win7,64位下Python 读取csv文件(Excel转化的)并绘制图表
- Excel图表—正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制-Part 1