GVKun编程网logo

使用Apache POI创建Excel图表(apache poi生成execel)

5

如果您想了解使用ApachePOI创建Excel图表和apachepoi生成execel的知识,那么本篇文章将是您的不二之选。我们将深入剖析使用ApachePOI创建Excel图表的各个方面,并为您解

如果您想了解使用Apache POI创建Excel图表apache poi生成execel的知识,那么本篇文章将是您的不二之选。我们将深入剖析使用Apache POI创建Excel图表的各个方面,并为您解答apache poi生成execel的疑在这篇文章中,我们将为您介绍使用Apache POI创建Excel图表的相关知识,同时也会详细的解释apache poi生成execel的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

使用Apache POI创建Excel图表(apache poi生成execel)

使用Apache POI创建Excel图表(apache poi生成execel)

我需要使用Apache POI库从Java代码创建excel表,其中包含条形图,折线图等图表。可能吗?我找不到相同的任何有用的代码示例。

除了Java的POI库之外,还有其他替代方法吗?

答案1

小编典典

您只能使用Excel模板通过POI保留图表。这意味着您将创建一个包含图表的Excel模板文件,并将图表的数据源链接到一个defineName,然后可以从POI加载模板文件,并使用代码来更改defineName。当前的POI不支持从头开始创建图表。

C# 创建EXCEL图表并保存为图片

C# 创建EXCEL图表并保存为图片

数据表格能够清晰的呈现数据信息,但是我们对于一些繁杂多变的数据想要很直观的看到数据变化走势或者数据的占比时,数据图表会更具代表性,并且在呈现数据信息上也更形象,也能获取更多纯数字信息所不能直接展现的信息。在下面的代码中,将向您展示如何通过使用免费的Free Spire XLS for .NET组件来实现。

原数据表格:

C#

 1 using Spire.Xls;
 2  System.Drawing;
 3  System.Drawing.Imaging;
 4 
 5 namespace CreateChart_XLS
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             //创建一个Workbook类实例,加载Excel文档
12             Workbook workbook = new Workbook();
13             workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.xlsx");
14 
15             获取第一个工作表
16             Worksheet sheet = workbook.Worksheets[0];
17 
18             设置工作表的名称
19             sheet.Name = "柱状图;
20             sheet.GridLinesVisible = false21 
22             创建柱状图
23             Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered);
24 
25             指定用于生成图表的数据区域
26             chart.Datarange = sheet.Range[A2:G627             chart.SeriesDataFromrange = 28 
29             指定图表所在的位置
30             chart.LeftColumn = 131             chart.TopRow = 932             chart.RightColumn = 1233             chart.Bottomrow = 2634 
35             设置图表的名称及字体格式
36             chart.ChartTitle = 上半年产品销售情况(单位:万美元)37             chart.ChartTitleArea.IsBold = true38             chart.ChartTitleArea.Size = 39 
40             设置X轴坐标名称及字体格式
41             chart.PrimaryCategoryAxis.Title = 产品类别42             chart.PrimaryCategoryAxis.Font.IsBold = 43             chart.PrimaryCategoryAxis.TitleArea.IsBold = 44          
45             设置Y轴坐标名称及字体格式
46             chart.PrimaryValueAxis.Title = 销售额;            
47             chart.PrimaryValueAxis.HasMajorGridLines = 48             chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 9049             chart.PrimaryValueAxis.MinValue = 0.550             chart.PrimaryValueAxis.TitleArea.IsBold = 51 
52             设置图例的位置
53             chart.Legend.Position = LegendPositionType.Right;
54 
55              保存文档
56             workbook.SavetoFile(ColumnChart.xlsx,ExcelVersion.Version2013);
57 
58 
59              加载生成图表后的Excel文档
60             workbook.LoadFromFile(61 
62             遍历工作簿,诊断是否包含图表
63             Image[] images = workbook.SaveChartAsImage(sheet);
64 
65              for (int i = 0; i < images.Length; i++)
66               {
67                  将图表保存为图片
68                   images[i].Save(string.Format(img-{0}.png69                }
70         }
71     }
72 }
@H_980_301@

 

生成的图表文件及图片如下图所示:

组件获取地址:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html

以上是对Excel数据表格生成并转化为图表的全部操作,希望对你有所帮助,欢迎转载(转载请注明出处)

感谢浏览!

总结

以上是小编为你收集整理的C# 创建EXCEL图表并保存为图片全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

java – 使用Apache POI复制Excel表

java – 使用Apache POI复制Excel表

如何使用 Java SE和Apache POI将整个Excel表复制到同一工作簿的另一个Excel表中?

解决方法

您可能需要在工作簿上使用 cloneSheet(sheetNumber)方法.详见 JavaDocs

java – 使用Apache POI更新excel文件

java – 使用Apache POI更新excel文件

我正在尝试使用Apache POI更新现有的Excel文件.每次运行我的代码时,都会收到错误,如下所示.我也尝试了FileInputStreamNewFile的事情.
Exception in thread "main" java.lang.NullPointerException
    at com.gma.test.WriteExcelTest.writeXLSXFile(WriteExcelTest.java:26)
    at com.gma.test.WriteExcelTest.main(WriteExcelTest.java:44)

请在下面找到代码.感谢您的帮助.

package com.gma.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class WriteExcelTest {

    public static void writeXLSXFile(int row,int col) throws IOException {
        try {
            FileInputStream file = new FileInputStream("C:\\Anuj\\Data\\Data.xlsx");

            XSSFWorkbook workbook = new XSSFWorkbook(file);
            XSSFSheet sheet = workbook.getSheetAt(0);
            Cell cell = null;

            //Update the value of cell
            cell = sheet.getRow(row).getCell(col);
            cell.setCellValue("Pass");

            file.close();

            FileOutputStream outFile =new FileOutputStream(new File("C:\\Anuj\\Data\\Data.xlsx"));
            workbook.write(outFile);
            outFile.close();

        } catch (FileNotFoundException e) {
            e.printstacktrace();
        } catch (IOException e) {
            e.printstacktrace();
        }
    }

    public static void main(String[] args) throws IOException {
        // Todo Auto-generated method stub
        writeXLSXFile(3,3);
    }

}

解决方法

如果你更换
//Update the value of cell
cell = sheet.getRow(row).getCell(col);
cell.setCellValue("Pass");

//Retrieve the row and check for null
hssfRow sheetrow = sheet.getRow(row);
if(sheetrow == null){
    sheetrow = sheet.createRow(row);
}
//Update the value of cell
cell = sheetrow.getCell(col);
if(cell == null){
    cell = sheetrow.createCell(col);
}
cell.setCellValue("Pass");

它会工作!

Java 创建Excel图表

Java 创建Excel图表

在Excel文档中,图表是指将工作表中的数据用图形的方式表示出来。它不仅能够反映数据间的某种相对关系,以此来帮助我们分析和对比数据;同时能够使得数据更加易于阅读,引人注目。本文就将通过使用Java程序来演示如何在Excel文档中创建一些常用的图表,包括柱状图、饼状图和折线图。

使用工具:Free Spire.XLS for Java (免费版)

Jar文件获取及导入:

方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
安装图.png

方法2:通过maven仓库安装导入。具体安装详情参见此网页。

【示例1】创建柱状图

import com.spire.xls.*;  
import com.spire.xls.charts.ChartSerie;  
import com.spire.xls.charts.ChartSeries;  
import java.awt.*;  
  
public class ColumnChart {  
    public static void main(String[] args) {  
  
  //创建Workbook对象  
  Workbook workbook = new Workbook();  
  
  //获取第一个工作表  
  Worksheet sheet = workbook.getWorksheets().get(0);  
  
  //将图表数据写入工作表  
  sheet.getCellRange("A1").setValue("部门");  
  sheet.getCellRange("A2").setValue("开发部");  
  sheet.getCellRange("A3").setValue("测试部");  
  sheet.getCellRange("A4").setValue("销售部");  
  sheet.getCellRange("A5").setValue("技术支持部");  
  sheet.getCellRange("B1").setValue("男性");  
  sheet.getCellRange("B2").setNumberValue(65);  
  sheet.getCellRange("B3").setNumberValue(21);  
  sheet.getCellRange("B4").setNumberValue(12);  
  sheet.getCellRange("B5").setNumberValue(30);  
  sheet.getCellRange("C1").setValue("女性");  
  sheet.getCellRange("C2").setNumberValue(13);  
  sheet.getCellRange("C3").setNumberValue(33);  
  sheet.getCellRange("C4").setNumberValue(28);  
  sheet.getCellRange("C5").setNumberValue(21);  
  
  //设置单元格样式  
sheet.getCellRange("A1:C1").setRowHeight(15);  
sheet.getCellRange("A1:C1").getCellStyle().setColor(Color.darkGray);  
sheet.getCellRange("A1:C1").getCellStyle().getExcelFont().setColor(Color.white);  
sheet.getCellRange("A1:C1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);  
sheet.getCellRange("A1:C1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);  
sheet.autoFitColumn(1);  
  
  //添加柱形图  
Chart chart =sheet.getCharts().add(ExcelChartType.ColumnClustered);  
  
 //设置图表数据区域  
chart.setDataRange(sheet.getCellRange("A1:C5"));  
chart.setSeriesDataFromRange(false);  
  
//设置图表位置  
  chart.setLeftColumn(5);  
  chart.setTopRow(1);  
  chart.setRightColumn(14);  
  chart.setBottomRow(21);  
  
//设置图表标题  
chart.setChartTitle("部门信息");  
chart.getChartTitleArea().isBold(true);  
chart.getChartTitleArea().setSize(12);  
  
//设置x,y轴的名称  
chart.getPrimaryCategoryAxis().setTitle("部门");  
chart.getPrimaryCategoryAxis().getFont().isBold(true);  
chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);  
chart.getPrimaryValueAxis().setTitle("人数");  
chart.getPrimaryValueAxis().hasMajorGridLines(false);  
chart.getPrimaryValueAxis().getTitleArea().isBold(true);  
chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(90);  
  
//设置系列颜色、重叠、宽度和数字标签  
ChartSeries series = chart.getSeries();  
   for (int i = 0 ; i < series.size() ; i++) {  
       ChartSerie cs = series.get(i);  
          cs.getFormat().getOptions().isVaryColor(true);  
          cs.getFormat().getOptions().setOverlap(-50);  
          cs.getFormat().getOptions().setGapWidth(350);  
          cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);  
        }  
  
 //设置图例位置  
 chart.getLegend().setPosition(LegendPositionType.Top);  
  
 //保存文档  
workbook.saveToFile("output/ColumnChart.xlsx", ExcelVersion.Version2016);  
    }  
}

柱状图创建效果:

效果1.png

【示例2】创建饼状图

import com.spire.xls.*;  
import com.spire.xls.charts.ChartSerie;  
import java.awt.*;  
  
public class PieChart {  
    public static void main(String[] args) {  
  
 //创建Workbook对象  
 Workbook workbook = new Workbook();  
  
 //获取第一个工作表  
 Worksheet sheet = workbook.getWorksheets().get(0);  
  
 //将图表数据写入工作表  
 sheet.getCellRange("A1").setValue("国家");  
 sheet.getCellRange("A2").setValue("古巴");  
 sheet.getCellRange("A3").setValue("墨西哥");  
 sheet.getCellRange("A4").setValue("法国");  
 sheet.getCellRange("A5").setValue("德国");  
 sheet.getCellRange("B1").setValue("销售额");  
 sheet.getCellRange("B2").setNumberValue(400000);  
 sheet.getCellRange("B3").setNumberValue(600000);  
 sheet.getCellRange("B4").setNumberValue(700000);  
 sheet.getCellRange("B5").setNumberValue(850000);  
  
 //设置单元格样式  
sheet.getCellRange("A1:B1").setRowHeight(15);  
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);  
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);  
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);  
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);  
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");  
  
 //添加饼图  
 Chart chart = sheet.getCharts().add(ExcelChartType.Pie);  
  
 //设置图表数据区域  
 chart.setDataRange(sheet.getCellRange("B2:B5"));  
 chart.setSeriesDataFromRange(false);  
  
 //设置图表位置  
  chart.setLeftColumn(4);  
  chart.setTopRow(1);  
  chart.setRightColumn(13);  
  chart.setBottomRow(21);  
  
 //设置图表标题  
  chart.setChartTitle("市场份额");  
  chart.getChartTitleArea().isBold(true);  
  chart.getChartTitleArea().setSize(12);  
  
 //设置系列标签  
ChartSerie cs = chart.getSeries().get(0);  
cs.setCategoryLabels(sheet.getCellRange("A2:A5"));  
cs.setValues(sheet.getCellRange("B2:B5"));  
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);  
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasPercentage(true);  
chart.getPlotArea().getFill().setVisible(false);  
  
 //保存文档  
workbook.saveToFile("output/PieChart.xlsx", ExcelVersion.Version2016);  
    }  
}

饼状图创建效果:

效果2.png

【示例3】创建折线图

import com.spire.xls.*;  
import com.spire.xls.charts.ChartSerie;  
import com.spire.xls.charts.ChartSeries;  
import java.awt.*;  
  
public class LineChart {  
    public static void main(String[] args) {  
  
 //创建Workbook对象  
 Workbook workbook = new Workbook();  
  
 //获取第一个工作表  
 Worksheet sheet = workbook.getWorksheets().get(0);  
  
 //将图表数据写入工作表  
  sheet.getCellRange("A1").setValue("月份");  
  sheet.getCellRange("A2").setValue("一月");  
  sheet.getCellRange("A3").setValue("二月");  
  sheet.getCellRange("A4").setValue("三月");  
  sheet.getCellRange("A5").setValue("四月");  
  sheet.getCellRange("A6").setValue("五月");  
  sheet.getCellRange("A7").setValue("六月");  
  sheet.getCellRange("B1").setValue("台式电脑");  
  sheet.getCellRange("B2").setNumberValue(80);  
  sheet.getCellRange("B3").setNumberValue(45);  
  sheet.getCellRange("B4").setNumberValue(25);  
  sheet.getCellRange("B5").setNumberValue(20);  
  sheet.getCellRange("B6").setNumberValue(10);  
  sheet.getCellRange("B7").setNumberValue(5);  
  sheet.getCellRange("C1").setValue("手提电脑");  
  sheet.getCellRange("C2").setNumberValue(30);  
  sheet.getCellRange("C3").setNumberValue(25);  
  sheet.getCellRange("C4").setNumberValue(35);  
  sheet.getCellRange("C5").setNumberValue(50);  
  sheet.getCellRange("C6").setNumberValue(45);  
  sheet.getCellRange("C7").setNumberValue(55);  
  sheet.getCellRange("D1").setValue("平板电脑");  
  sheet.getCellRange("D2").setNumberValue(10);  
  sheet.getCellRange("D3").setNumberValue(15);  
  sheet.getCellRange("D4").setNumberValue(20);  
  sheet.getCellRange("D5").setNumberValue(35);  
  sheet.getCellRange("D6").setNumberValue(60);  
  sheet.getCellRange("D7").setNumberValue(95);  
  
  //设置单元格样式  
sheet.getCellRange("A1:D1").setRowHeight(15); 
sheet.getCellRange("A1:D1").getCellStyle().setColor(Color.darkGray);  
sheet.getCellRange("A1:D1").getCellStyle().getExcelFont().setColor(Color.white);  
sheet.getCellRange("A1:D1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);  
sheet.getCellRange("A1:D1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);  
  
 //添加折线图  
 Chart chart = sheet.getCharts().add(ExcelChartType.Line);  
 //设置图表数据区域  
 chart.setDataRange(sheet.getCellRange("A1:D7"));  
 chart.setSeriesDataFromRange(false);  
  
 //设置图表位置  
  chart.setLeftColumn(6);  
  chart.setTopRow(1);  
  chart.setRightColumn(15);  
  chart.setBottomRow(21);  
  
 //设置图表标题  
  chart.setChartTitle("产品销售趋势图");  
  chart.getChartTitleArea().isBold(true);  
  chart.getChartTitleArea().setSize(12);  
  
 //设置x,y轴的名称  
chart.getPrimaryCategoryAxis().setTitle("月份");  
chart.getPrimaryCategoryAxis().getFont().isBold(true);  
chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);  
chart.getPrimaryValueAxis().setTitle("销售量");  
chart.getPrimaryValueAxis().hasMajorGridLines(false);  
chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(90);  
chart.getPrimaryValueAxis().getTitleArea().isBold(true);  
  
 //设置系列颜色和数字标签  
 ChartSeries series = chart.getSeries();  
    for (int i = 0; i < series.size(); i++) {  
       ChartSerie cs = series.get(i);  
          cs.getFormat().getOptions().isVaryColor(true);  
           cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);  
           cs.getDataFormat().setMarkerStyle(ChartMarkerType.Circle);  
        }  
  
  //设置图例位置  
  chart.getLegend().setPosition(LegendPositionType.Top);  
  
  //保存文档  
workbook.saveToFile("output/LineChart.xlsx", ExcelVersion.Version2016);  
    }  
}

折线图创建效果:

效果3.png

(本文完)

今天关于使用Apache POI创建Excel图表apache poi生成execel的介绍到此结束,谢谢您的阅读,有关C# 创建EXCEL图表并保存为图片、java – 使用Apache POI复制Excel表、java – 使用Apache POI更新excel文件、Java 创建Excel图表等更多相关知识的信息可以在本站进行查询。

本文标签: