首页 > 编程知识 正文

java获取excel中折线,java操作excel做曲线

时间:2023-05-04 11:34:53 阅读:283370 作者:4332

目录

1. 简介

1-1. jxCell简介

1-2. 同类对比

1-2-1. 参照

2. 示例

2-1. jar准备

2-2. 代码

2-3. 执行结果

3. 遗留问题


1. 简介 1-1. jxCell简介 Jxcell是用于java开发环境的高性能电子表格组件,允许您创建、操作和打印excel工作表。 Excel 97-2013兼容,支持300+ Excel公式(读、写、算)。 Java Swing组件(超兼容的)支持高级特性,如格式、图像、图表和超链接。 Jxcell完全用纯Java编写,可以兼容任何运行Java 1.5或更高版本的操作系统。 1-2. 同类对比

    实现Excel导出功能的主要有 POI, JXL, JXCELL 等工具;  目前只实现了图表的导出的为 JXL 和 JXCELL .

1-2-1. 参照

    https://www.cnblogs.com/sicd/p/3895628.html

2. 示例

    使用jxcell绘制折线图请参照  https://blog.csdn.net/liujinxin33/article/details/43986911

    或者参照 jxcell 的示例, 其demo示例请在 2-1 中的jar下载中查找

2-1. jar准备

    jxcell.jar

    下载地址:  https://download.csdn.net/download/hkk666123/10577079

<dependency> <groupId>com.jxcell</groupId> <artifactId>jxcell</artifactId> <scope>system</scope> <version>4.1</version> <systemPath>${basedir}srclibjxcell.jar</systemPath></dependency> 2-2. 代码 import com.cntv.learn.base.constant.enumdic.FILE_PATH;import com.jxcell.*;import com.jxcell.designer.Designer;import java.awt.*;import java.io.IOException;/** * @author : LiuDong * @description : * @date : Created in 2018/7/31 9:32 */public class TestChart { public static void main(String[] args) throws IOException, CellException { typePie(); } /** * TODO 测试导出饼图, 饼图的分块颜色无法自定义 */ private static void typePie() { View m_view = new View(); RangeRef newRange = null; try { /** 1.0 数据准备, 可参照./test/TextFormattingTest.java */ m_view.getLock(); // 标题 (行,列,值); m_view.setTextAsValue(1, 1, "名称"); m_view.setTextAsValue(1, 2, "数值"); // 分项 m_view.setTextAsValue(2, 1, "就诊量"); m_view.setTextAsValue(3, 1, "取消量"); m_view.setTextAsValue(4, 1, "爽约量"); m_view.setTextAsValue(5, 1, "确认预约(待就诊)"); m_view.setTextAsValue(6, 1, "总计量"); // 数据 m_view.setNumber(2, 2, 2182); m_view.setNumber(3, 2, 887); m_view.setNumber(4, 2, 191); m_view.setNumber(5, 2, 142); // 序号 m_view.setTextAsValue(1, 3, "序号"); m_view.setNumber(2, 3, 1); m_view.setNumber(3, 3, 2); m_view.setNumber(4, 3, 3); m_view.setNumber(5, 3, 4); // 设置公式, 可参照./test/formula/FormulaSample.java m_view.setFormula(6, 2, "SUM(C3:C6)"); // 选中单元格区域 m_view.setSelection("C7:D7"); // 编辑复制 向右复制 m_view.editCopyRight(); /** 1.1 绘制饼图, 可参照./test/chart/ChartFormatDemo.java */ // 绘图区坐标addChart(左上列x,左上行y,右下列x,右下行y) ChartShape chart = m_view.addChart(0, 9, 10, 40); // 图表格式, 其他格式参照demo chart.setChartType(ChartShape.TypePie); // 添加一个系列 chart.addSeries(); // 饼图数据源,饼图需要的具体数字,不包含总数,参数为 开始单元格结束单元格 chart.setSeriesYValueFormula(0, "Sheet1!$C$3:$C$6"); // 数据对应的说明.如:货车 12辆,这里是货车 chart.setCategoryFormula("Sheet1!$B$3:$B$6"); // 图表名称 chart.setTitle("服务状态分布图"); /** 1.2 设置样式, 可参照./test/chart/ChartFormatTest.java */ // 设置列宽行高 m_view.setColWidth(1, 18 * 256); // 设置图纸样式, 参照各种Format类 ChartFormat cf = chart.getChartFormat();// cf.setPattern(com.jxcell.CellFormat.PatternSolid);// cf.setPatternFG(m_view.getPaletteEntry(31).getRGB()); chart.setChartFormat(cf); // 设置绘图区颜色 cf = chart.getPlotFormat();// cf.setForeColor((new Color(0, 255, 0)).getRGB()); chart.setPlotFormat(cf); // 展示图饼文字描述 cf = chart.getSeriesFormat(0); cf.setDataLabelPosition(ChartFormat.DataLabelPositionOutside);// cf.setDataLabelPosition(ChartFormat.DataLabelPositionAuto);// cf.setDataLabelType(ChartFormat.DataLabelValue); cf.setDataLabelType(ChartFormat.DataLabelCategoryAndPercent); chart.setSeriesFormat(0, cf); // 设置图饼分块颜色 chart.setVaryColors(true); cf = chart.getDataLabelFormat(0, 0); cf.setForeColor((new Color(0, 0, 255)).getRGB()); cf.setFontColor((new Color(255, 0, 0)).getRGB()); chart.setDataLabelFormat(0, 0, cf); // 设置标题字体格式 cf = chart.getTitleFormat(); cf.setFontBold(true); cf.setFontSize(20 * 20); chart.setTitleFormat(cf); // 图表刻印位置 chart.setLegendPosition(ChartFormat.LegendPlacementBottom); // 图表刻印样式, 取消图饼边框显示 cf = chart.getLegendFormat(); cf.setLineNone(); cf.setFontSizeInPoints(13); chart.setLegendFormat(cf); /** 2.0 导出功能 */ // excel写出路径 m_view.write(FILE_PATH.EXCEL_DOWNLOAD_PATH.getDesc() + "typePieOut0.xls"); System.out.println("end"); Designer.newDesigner(m_view); } catch (Exception e) { System.out.println(e.getMessage()); } finally { m_view.releaseLock(); } }} 2-3. 执行结果

    

3. 遗留问题 // 设置饼图分块颜色chart.setVaryColors(true);目前只可以通过该方式设置饼图分块的颜色, 无法实现自定义其颜色, 欢迎各位大佬批评指点, 晓得解决方法还望不吝赐教, 先给大佬抱拳了~

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。