21xrx.com
2025-03-23 16:33:38 Sunday
文章检索 我的文章 写文章
Java实现导出图表到Excel表格
2023-06-15 17:15:42 深夜i     --     --
Java Excel 图表

Java作为一种强大而又广泛使用的编程语言,可以用来实现很多有用的功能,其中之一就是把图表导出到Excel表格中。在本篇文章中,我们将以示例代码的形式进行讲解,介绍如何在Java中实现将图表导出到Excel的步骤。

我们将使用poi库来实现Excel文件的创建和数据的写入,同时使用jfreechart库来绘制图表。下面是一个简单的Java类,它指定了如何从数据中获取图表并将其写入Excel文件中:

import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class ChartToExcel {
  
  public static void main(String[] args) throws IOException {
    
    // Create a new workbook
    Workbook workbook = new XSSFWorkbook();
    // Create a worksheet and name it
    Sheet worksheet = workbook.createSheet("PieChart");
    
    int rowNumber = 0;
    
    // Create a dataset for the pie chart
    DefaultPieDataset dataset = new DefaultPieDataset();
    dataset.setValue("Java", 40);
    dataset.setValue("JavaScript", 25);
    dataset.setValue("Python", 20);
    dataset.setValue("Ruby", 15);
    
    // Create the pie chart
    JFreeChart chart = ChartFactory.createPieChart(
           "Programming Languages",
           dataset,
           true,
           true,
           false);
    
    // Save the chart to an image
    ChartUtilities.saveChartAsPNG(new FileOutputStream("piechart.png"),
           chart, 600, 400);
    // Create a new row in the worksheet and set the first cell value
    Row row = worksheet.createRow(rowNumber++);
    Cell cell = row.createCell(0);
    cell.setCellValue("Programming Languages");
    // Create a new row in the worksheet and write the chart to it
    row = worksheet.createRow(rowNumber++);
    cell = row.createCell(0);
    cell.setCellValue(new FileOutputStream("piechart.png"));
    
    // Write the workbook to a file
    FileOutputStream outputStream = new FileOutputStream("piechart.xlsx");
    workbook.write(outputStream);
    workbook.close();
    outputStream.close();
  }
}

在上面的代码中,我们使用`Workbook`和`Sheet`类来创建一个新的Excel文件和一个新的工作表。然后,我们使用`DefaultPieDataset`类来设置图表的数据源,并使用`ChartFactory`类来创建一个新的饼图对象。最后,我们使用`ChartUtilities`类将饼图保存到PNG格式的图片中,并将其写入Excel文件的单元格中。在代码的最后,我们使用流来将Excel文件保存到磁盘中。

  
  

评论区