`

java excel添加图片

    博客分类:
  • java
 
阅读更多
private void drawLine1(Sheet sheetAt0,String title,List<ContractSpotInfoVo> list,List<ContractVO> contractVOList){
if(list == null || list.size() == 0)return;
    //这里绘制散点图
XSSFDrawing drawing = (XSSFDrawing) sheetAt0.createDrawingPatriarch();
    //前偏移量四个默认0
XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 48, 12, 67);
    //创建一个chart对象
XSSFChart chart = drawing.createChart(anchor);
    //标题
chart.setTitleText(title);
    //标题是否覆盖图表
chart.setTitleOverlay(false);

    // XXDDFCategoryAxis xAxis =  chart.createCategoryAxis(AxisPosition.BOTTOM);
    xAxis.setMajorTickMark(AxisTickMark.NONE);// x轴刻度线
// YXDDFValueAxis yAxis = chart.createValueAxis(AxisPosition.LEFT);
    yAxis.setMajorTickMark(AxisTickMark.NONE);// y轴刻度线
yAxis.setTitle("MWh");

    xAxis.crossAxis(yAxis);
    yAxis.crossAxis(xAxis);

    XDDFLineChartData line = (XDDFLineChartData) chart.createData(ChartTypes.LINE, xAxis, yAxis);

    Map<String, List<ContractSpotInfoVo>> collect = list.stream().collect(Collectors.groupingBy(ContractSpotInfoVo::getInfoTime));

    List<String> xArray = new ArrayList<>();
    List<BigDecimal> yArray1 = new ArrayList<>();
    List<BigDecimal> yArray2 = new ArrayList<>();
    List<BigDecimal> yArray3 = new ArrayList<>();

    collect.entrySet().stream().sorted((o1,o2)->{
return o1.getKey().compareTo(o2.getKey());
    }).forEach(item->{
MxContractAnalyse2TableVo convert = convert(item.getValue(),contractVOList);
        if(convert == null)return;
        xArray.add(item.getKey()!=null?item.getKey().substring(0,5):"");
        yArray1.add(Optional.ofNullable(convert.getContractPower()).orElse(BigDecimal.ZERO));//合约电量
yArray2.add(Optional.ofNullable(convert.getContractPrice()).orElse(BigDecimal.ZERO));//合约电价
yArray3.add(Optional.ofNullable(convert.getSpotPrice()).orElse(BigDecimal.ZERO));//现货电价
});


    XDDFCategoryDataSource x = XDDFDataSourcesFactory.fromArray(xArray.toArray(new String[]{}));
    XDDFLineChartData.Series series1 = (XDDFLineChartData.Series) line.addSeries(x, XDDFDataSourcesFactory.fromArray(yArray1.toArray(new BigDecimal[]{})));
    series1.setTitle("合约电量",null);
    series1.setSmooth(false);
    series1.setMarkerSize((short)2);

    chart.plot(line);


    XDDFValueAxis yAxis2 = chart.createValueAxis(AxisPosition.RIGHT);
    yAxis2.setMajorTickMark(AxisTickMark.NONE);// y轴刻度线

xAxis.crossAxis(yAxis2);
    yAxis2.crossAxis(xAxis);
    yAxis2.setCrosses(AxisCrosses.MAX);
    yAxis2.setTitle("/MWh");

    XDDFLineChartData line2 = (XDDFLineChartData) chart.createData(ChartTypes.LINE, xAxis, yAxis2);

    XDDFLineChartData.Series series2 = (XDDFLineChartData.Series) line2.addSeries(x, XDDFDataSourcesFactory.fromArray(yArray2.toArray(new BigDecimal[]{})));
    series2.setTitle("合约电价",null);
    series2.setSmooth(false);
    series2.setMarkerSize((short)2);

    XDDFLineChartData.Series series3 = (XDDFLineChartData.Series) line2.addSeries(x, XDDFDataSourcesFactory.fromArray(yArray3.toArray(new BigDecimal[]{})));
    series3.setTitle("现货电价",null);
    series3.setSmooth(false);
    series3.setMarkerSize((short)2);

    //图例位置
XDDFChartLegend legend = chart.getOrAddLegend();
    legend.setPosition(LegendPosition.BOTTOM);

    // 样式线
XDDFLineProperties line123  =  new XDDFLineProperties();
    line123.setFillProperties(new XDDFSolidFillProperties(XDDFColor.from(new byte[] {(byte)228,(byte)231,(byte)237})));
    line123.setWidth(0.5);
    XDDFShapeProperties yGridProperties = yAxis.getOrAddMajorGridProperties();
    yGridProperties.setLineProperties(line123);

    chart.plot(line2);
}

 

分享到:
评论

相关推荐

    利用java往excel中插入图片

    本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....

    java实现在Excel中插入图片

    在Java编程环境中,实现将图片插入到Excel文件中是一项常见的任务,特别是在数据分析、报表生成或者自动化办公场景下。本文将详细讲解如何使用Java来完成这一功能,主要涉及到Apache POI库的应用。 Apache POI是一...

    java poi导出图片到excel示例代码

    首先,需要创建一个Drawings对象,然后使用Drawings对象的addPicture方法将图片添加到Excel中。 3. 使用Java POI下载Excel文件 在示例代码中,使用了HttpServletResponse对象将Excel文件下载到客户端。首先,需要...

    java 导出excel,带图片的Excel导出

    在Java编程中,导出Excel是一项常见的...通过上述步骤,你可以创建一个能处理带图片的Excel导出的Java程序,适用于各种业务场景。当然,具体的实现代码会涉及更多的细节和具体操作,但以上知识点提供了一个全面的概览。

    java操作excel实现水印图片

    java操作excel实现水印图片

    java导出图片到excel

    在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...

    java写入excel图片操作

    在Java编程中,将图片写入Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据可视化的情景下。这里,我们将详细探讨如何实现这个功能,主要依赖于`Apache POI`库来操作Excel,并结合`JFreeChart`库来创建...

    java excel中表格导成png图片

    在Java编程环境中,将Excel表格转换为PNG图片是一项常见的需求,尤其在数据可视化或报告生成时。本篇文章将深入探讨如何使用Java实现这一功能,主要涉及Apache POI库的运用和其他相关技术。 Apache POI是一个强大的...

    JAVA poi 做EXCEL导出(包含图片) 完整版

    本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    java 读取excel内容 创建excel 插入文字及图片

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、创建新的Excel工作簿,还是向其中插入文字和图片,都有成熟的库可以支持。本篇文章将深入探讨如何使用Java来实现这些功能。 首先,我们需要引入一个...

    java excel生成二维码(可以添加图标和文字).zip

    你需要创建一个Workbook对象,添加Sheet,然后在Sheet中插入图片,这些图片就是生成的二维码。 4. **图像到Excel的转换**: `MatrixToImageWriter.java`可能实现了将二维码的矩阵数据转换为图像文件的过程。通常,...

    Java生成Excel文件

    在Java编程中,生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出功能中。本篇文章将深入探讨如何使用Java来创建Excel文件,并基于提供的标签“源码”和“工具”分享一些实用的方法。 首先,Java...

    java excel api

    Java Excel API,通常指的是jxl库,是一个广泛使用的开源Java库,用于读写Microsoft Excel文件。这个库使得在Java程序中处理Excel数据变得极其便捷,无论是读取现有的工作簿、创建新的工作簿,还是修改现有表格,jxl...

    java中将数据和图片导出到Excel文件

    ### Java中将数据和图片导出到Excel文件 在Java编程环境下实现数据及图片导出至Excel文件是一项常见的任务,特别是在处理报表、数据分析等场景时。本文将详细解析如何通过Java代码来完成这一过程,包括如何创建...

    Java Excel转为PDF(aspose)工具类 复造轮子

    本篇将详细讲解如何利用Aspose.Cells来实现Java中Excel到PDF的转换,以及处理包含图片的单元格。 首先,你需要在项目中引入Aspose.Cells的依赖。如果使用Maven,可以在pom.xml文件中添加如下依赖: ```xml ...

    java 生成Excel 图片插入、特殊字符插入、单个Cell中多种字体

    本文将详细介绍如何使用Java实现Excel的生成,包括插入图片、添加特殊字符如复选框样式,以及在一个单元格内设置多种字体。我们将主要讨论Apache POI库,这是一个流行的Java API,用于读写Microsoft Office格式的...

    JAVA遍历EXCEL表格

    ### 使用JavaExcel (jxl)库进行Excel文件的读取与写入 #### 一、简介 在实际项目开发过程中,经常会遇到需要处理Excel文件的需求。对于Java开发者来说,使用`JavaExcel (jxl)`库可以高效地实现对Excel文件的操作。...

    POI向excel中插入图片

    在Java项目中,你需要在pom.xml文件中添加Apache POI的相关依赖,例如: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;4.1.2 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml &lt;version&gt;4.1.2...

    java数据excel导出小Demo

    在Java编程中,导出数据到Excel是一种常见的需求,特别是在数据分析、报表生成或者数据交换的场景下。这个“java数据excel导出小Demo”可能是为了展示如何使用Java库来实现这一功能。在这个简短的教程中,我们将探讨...

    Java数据导出到Excel模板

    - **公式和图表**:POI也支持添加公式和创建图表,但需要遵循Excel的规则。 5. **在Java Web环境中的应用**:在Web环境中,用户可能通过点击按钮触发导出操作,这需要将上述步骤封装到一个服务方法中,然后在前端...

Global site tag (gtag.js) - Google Analytics