Spire.XLS 组件为用户提供了多种图表类型选择,其中涵盖了 Excel 自带的各种图表。这些图表类型被定义在枚举 Spire.Xls.ExcelChartType 中,共有以下 74 种:
图表类型 |
描述 |
1. ColumnClustered | Represents Clustered Column Chart |
2. ColumnStacked | Represents Stacked Column Chart |
3. Column100PercentStacked | Represents 100% Stacked Column Chart |
4. Column3DClustered | Represents 3D Clustered Column Chart |
5. Column3DStacked | Represents 3D Stacked Column Chart |
6. Column3D100PercentStacked | Represents 3D 100% Stacked Column Chart |
7. Column3D | Represents 3D Column Chart |
8. BarClustered | Represents Clustered Bar Chart |
9. BarStacked | Represents Stacked Bar Chart |
10. Bar100PercentStacked | Represents 100% Stacked Bar Chart |
11. Bar3DClustered | Represents 3D Clustered Bar Chart |
12. Bar3DStacked | Represents 3D Stacked Bar Chart |
13. Bar3D100PercentStacked | Represents 100% 3D Stacked Bar Chart |
14. Line | Represents Line Chart |
15. LineStacked | Represents Stacked Line Chart |
16. Line100PercentStacked | Represents 100% Stacked Line Chart |
17. LineMarkers | Represents Markers Line Chart |
18. LineMarkersStacked | Represents Stacked Markers Line Chart |
19. LineMarkers100PercentStacked | Represents 100% Stacked Markers Line Chart |
20. Line3D | Represents 3D Line Chart |
21. Pie | Represents Pie Chart |
22. Pie3D = 21 | Represents 3D Pie Chart |
23. PieOfPie | Represents Pie of Pie chart |
24. PieExploded | Represents Exploded Pie Chart |
25. Pie3DExploded | Represents 3D Exploded Pie Chart |
26. PieBar | Represents Bar Pie Chart |
27. ScatterMarkers | Represents Markers Scatter Chart |
28. ScatterSmoothedLineMarkers | Represents ScatterSmoothedLineMarkers Chart |
29. ScatterSmoothedLine | Represents ScatterSmoothedLine Chart |
30. ScatterLineMarkers | Represents ScatterLineMarkers Chart |
31. ScatterLine | Represents ScatterLine Chart |
32. Area | Represents Area Chart |
33. AreaStacked | Represents AreaStacked Chart |
34. Area100PercentStacked | Represents Area100PercentStacked Chart |
35. Area3D | Represents Area3D Chart |
36. Area3DStacked | Represents Area3DStacked Chart |
37. Area3D100PercentStacked | Represents Area3D100PercentStacked Chart |
38. Doughnut | Represents Doughnut Chart |
39. DoughnutExploded | Represents DoughnutExploded Chart |
40. Radar | Represents Radar Chart |
41. RadarMarkers | Represents RadarMarkers Chart |
42. RadarFilled | Represents RadarFilled Chart |
43. Surface3D | Represents Surface3D Chart |
44. Surface3DNoColor | Represents Surface3DNoColor Chart |
45. SurfaceContour | Represents SurfaceContour Chart |
46. SurfaceContourNoColor | Represents SurfaceContourNoColor Chart |
47. Bubble | Represents Bubble Chart |
48. Bubble3D | Represents Bubble3D Chart |
49. StockHighLowClose | Represents StockHighLowClose Chart |
50. StockOpenHighLowClose | Represents StockOpenHighLowClose Chart |
51. StockVolumeHighLowClose | Represents StockVolumeHighLowClose Chart |
52. StockVolumeOpenHighLowClose | Represents StockVolumeOpenHighLowClose Chart |
53. CylinderClustered | Represents CylinderClustered Chart |
54. CylinderStacked | Represents CylinderStacked Chart |
55. Cylinder100PercentStacked | Represents Cylinder100PercentStacked Chart |
56. CylinderBarClustered | Represents CylinderBarClustered Chart |
57. CylinderBarStacked | Represents CylinderBarStacked Chart |
58. CylinderBar100PercentStacked | Represents CylinderBar100PercentStacked Chart |
59. Cylinder3DClustered | Represents Cylinder3DClustered Chart |
60. ConeClustered | Represents ConeClustered Chart |
61. ConeStacked | Represents ConeStacked Chart |
62. Cone100PercentStacked | Represents Cone100PercentStacked Chart |
63. ConeBarClustered | Represents ConeBarClustered Chart |
64. ConeBarStacked | Represents ConeBarStacked Chart |
65. ConeBar100PercentStacked | Represents ConeBar100PercentStacked Chart |
66. Cone3DClustered | Represents Cone3DClustered Chart |
67. PyramidClustered | Represents PyramidClustered Chart |
68. PyramidStacked | Represents PyramidStacked Chart |
69. Pyramid100PercentStacked | Represents Pyramid100PercentStacked Chart |
70. PyramidBarClustered | Represents PyramidBarClustered Chart |
71. PyramidBarStacked | Represents PyramidBarStacked Chart |
72. PyramidBar100PercentStacked | Represents PyramidBar100PercentStacked Chart |
73. Pyramid3DClustered | Represents Pyramid3DClustered Chart |
74. CombinationChart | Represents Combination Chart |
该节中我们将从以上表格中选取三种常见图表来进行创建:Clustered Column Chart(柱状图),Pie Chart (饼状图)及Doughnut Chart(环形图)。
Clustered Column Chart 柱状图
C#
//加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
//获取工作表
Worksheet sheet = workbook.Worksheets[0];
//设置工作表的名称
sheet.Name = "柱状图";
sheet.GridLinesVisible = false;
//创建柱状图
Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered);
//指定用于生成图表的数据区域
chart.DataRange = sheet.Range["A1:B5"];
chart.SeriesDataFromRange = false;
//指定图表所在的位置
chart.LeftColumn = 5;
chart.TopRow = 2;
chart.RightColumn = 15;
chart.BottomRow = 20;
//设置图表的名称以及x、y轴的名称
chart.ChartTitle = "部门信息";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
chart.PrimaryCategoryAxis.Title = "部门";
chart.PrimaryCategoryAxis.Font.IsBold = true;
chart.PrimaryCategoryAxis.TitleArea.IsBold = true;
chart.PrimaryValueAxis.Title = "人数";
chart.PrimaryValueAxis.HasMajorGridLines = false;
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;
chart.PrimaryValueAxis.MinValue = 0;
chart.PrimaryValueAxis.TitleArea.IsBold = true;
//5.设置图例的位置
chart.Legend.Position = LegendPositionType.Right;
//保存工作薄
workbook.SaveToFile("ColumnChart.xlsx", ExcelVersion.Version2013);
VB.NET
'加载Excel文档 Dim workbook As New Workbook() workbook.LoadFromFile("Sample.xlsx") '获取工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
'设置工作表的名称 sheet.Name = "柱状图" sheet.GridLinesVisible = False '创建柱状图
Dim chart As Chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)
'指定用于生成图表的数据区域 chart.DataRange = sheet.Range("A1:B5") chart.SeriesDataFromRange = False '指定图表所在的位置
chart.LeftColumn = 5
chart.TopRow = 2
chart.RightColumn = 15
chart.BottomRow = 20
'设置图表的名称以及x、y轴的名称 chart.ChartTitle = "部门信息" chart.ChartTitleArea.IsBold = True chart.ChartTitleArea.Size = 12 chart.PrimaryCategoryAxis.Title = "部门" chart.PrimaryCategoryAxis.Font.IsBold = True chart.PrimaryCategoryAxis.TitleArea.IsBold = True chart.PrimaryValueAxis.Title = "人数" chart.PrimaryValueAxis.HasMajorGridLines = False chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90 chart.PrimaryValueAxis.MinValue = 0 chart.PrimaryValueAxis.TitleArea.IsBold = True '5.设置图例的位置
chart.Legend.Position = LegendPositionType.Right
'保存工作薄 workbook.SaveToFile("ColumnChart.xlsx",ExcelVersion.Version2013)
Pie Chart 饼状图
C#
//创建工作簿 Workbook workbook = new Workbook();//获取工作表 Worksheet sheet = workbook.Worksheets[0];//设置工作表的名称 sheet.Name = "饼状图";sheet.GridLinesVisible = false;//向工作表添加数据 sheet.Range["A1"].Value = "年份";sheet.Range["A2"].Value = "2002";sheet.Range["A3"].Value = "2003";sheet.Range["A4"].Value = "2004";sheet.Range["A5"].Value = "2005";sheet.Range["B1"].Value = "销售额";sheet.Range["B2"].NumberValue = 4000;sheet.Range["B3"].NumberValue = 6000;sheet.Range["B4"].NumberValue = 7000;sheet.Range["B5"].NumberValue = 8500;sheet.Range["A1:B1"].Style.Font.IsBold = true;sheet.Range["A2:B2"].Style.KnownColor = ExcelColors.LightYellow;sheet.Range["A3:B3"].Style.KnownColor = ExcelColors.LightGreen1;sheet.Range["A4:B4"].Style.KnownColor = ExcelColors.LightOrange;sheet.Range["A5:B5"].Style.KnownColor = ExcelColors.LightTurquoise;sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeTop].Color = Color.FromArgb(0,0,128);sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.FromArgb(0,0,128);sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeLeft].Color = Color.FromArgb(0,0,128);sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeRight].Color = Color.FromArgb(0,0,128);sheet.Range["A1:B5"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;sheet.Range["B2:C5"].Style.NumberFormat = "\"$\"#,##0";//创建饼状图表 Chart chart = sheet.Charts.Add(ExcelChartType.Pie);//指定用于生成图表的数据区域 chart.DataRange = sheet.Range["B2:B5"];chart.SeriesDataFromRange = false;//指定图表所在位置 chart.LeftColumn = 1;chart.TopRow = 7;chart.RightColumn = 9;chart.BottomRow = 26;//设置图表的名称 chart.ChartTitle = "年销售额";chart.ChartTitleArea.IsBold = true;chart.ChartTitleArea.Size = 12;//设置图表系列的值 Spire.Xls.Charts.ChartSerie cs = chart.Series[0];cs.CategoryLabels = sheet.Range["A2:A5"];cs.Values = sheet.Range["B2:B5"];cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;chart.PlotArea.Fill.Visible = false;//保存工作薄 workbook.SaveToFile("PieChart.xls");
VB.NET
'创建工作簿
Dim workbook As New Workbook()
'获取工作表 Dim sheet As Worksheet = workbook.Worksheets(0) '设置工作表的名称
sheet.Name = "饼状图"
sheet.GridLinesVisible = False
'向工作表添加数据 sheet.Range("A1").Value = "年份" sheet.Range("A2").Value = "2002" sheet.Range("A3").Value = "2003" sheet.Range("A4").Value = "2004" sheet.Range("A5").Value = "2005" sheet.Range("B1").Value = "销售额" sheet.Range("B2").NumberValue = 4000 sheet.Range("B3").NumberValue = 6000 sheet.Range("B4").NumberValue = 7000 sheet.Range("B5").NumberValue = 8500 sheet.Range("A1:B1").Style.Font.IsBold = True sheet.Range("A2:B2").Style.KnownColor = ExcelColors.LightYellow sheet.Range("A3:B3").Style.KnownColor = ExcelColors.LightGreen1 sheet.Range("A4:B4").Style.KnownColor = ExcelColors.LightOrange sheet.Range("A5:B5").Style.KnownColor = ExcelColors.LightTurquoise sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeTop).Color = Color.FromArgb(0,0,128) sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.Thin sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeBottom).Color = Color.FromArgb(0,0,128) sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thin sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeLeft).Color = Color.FromArgb(0,0,128) sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.Thin sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeRight).Color = Color.FromArgb(0,0,128) sheet.Range("A1:B5").Style.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.Thin sheet.Range("B2:C5").Style.NumberFormat = """$""#,##0" '创建饼状图表
Dim chart As Chart = sheet.Charts.Add(ExcelChartType.Pie)
'指定用于生成图表的数据区域 chart.DataRange = sheet.Range("B2:B5") chart.SeriesDataFromRange = False '指定图表所在位置
chart.LeftColumn = 1
chart.TopRow = 7
chart.RightColumn = 9
chart.BottomRow = 26
'设置图表的名称 chart.ChartTitle = "年销售额" chart.ChartTitleArea.IsBold = True chart.ChartTitleArea.Size = 12 '设置图表系列的值
Dim cs As Spire.Xls.Charts.ChartSerie = chart.Series(0)
cs.CategoryLabels = sheet.Range("A2:A5")
cs.Values = sheet.Range("B2:B5")
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
chart.PlotArea.Fill.Visible = False
'保存工作薄 workbook.SaveToFile("PieChart.xls")
Doughnut Chart 环形图
C#
//创建工作薄 Workbook workbook = new Workbook();workbook.Version = ExcelVersion.Version2013;//获取工作表 Worksheet sheet = workbook.Worksheets[0];sheet.GridLinesVisible = false;//向工作表添加数据 sheet.Range["A1"].Value = "国家";sheet.Range["A1"].Style.Font.IsBold = true;sheet.Range["A2"].Value = "古巴";sheet.Range["A3"].Value = "墨西哥";sheet.Range["A4"].Value = "法国";sheet.Range["A5"].Value = "德国";sheet.Range["B1"].Value = "销售额";sheet.Range["B1"].Style.Font.IsBold = true;sheet.Range["B2"].NumberValue = 6000;sheet.Range["B3"].NumberValue = 8000;sheet.Range["B4"].NumberValue = 9000;sheet.Range["B5"].NumberValue = 8500;//创建环形图 Chart chart = sheet.Charts.Add();chart.ChartType = ExcelChartType.Doughnut;//指定用于生成图表的数据区域 chart.DataRange = sheet.Range["A1:B5"];chart.SeriesDataFromRange = false;//指定图表的位置 chart.LeftColumn = 4;chart.TopRow = 2;chart.RightColumn = 12;chart.BottomRow = 22;//设置图表的名称 chart.ChartTitle = "销售额百分比";chart.ChartTitleArea.IsBold = true;chart.ChartTitleArea.Size = 10;//设置图表系列的值 foreach (ChartSerie cs in chart.Series){cs.DataPoints.DefaultDataPoint.DataLabels.HasPercentage = true;}//设置图例的位置 chart.Legend.Position = LegendPositionType.Top;//保存工作薄 workbook.SaveToFile("DoughnutChart.xlsx");
VB.NET
'创建工作薄
Dim workbook As New Workbook()
workbook.Version = ExcelVersion.Version2013
'获取工作表 Dim sheet As Worksheet = workbook.Worksheets(0) sheet.GridLinesVisible = False '向工作表添加数据
sheet.Range("A1").Value = "国家"
sheet.Range("A1").Style.Font.IsBold = True
sheet.Range("A2").Value = "古巴"
sheet.Range("A3").Value = "墨西哥"
sheet.Range("A4").Value = "法国"
sheet.Range("A5").Value = "德国"
sheet.Range("B1").Value = "销售额"
sheet.Range("B1").Style.Font.IsBold = True
sheet.Range("B2").NumberValue = 6000
sheet.Range("B3").NumberValue = 8000
sheet.Range("B4").NumberValue = 9000
sheet.Range("B5").NumberValue = 8500
'创建环形图 Dim chart As Chart = sheet.Charts.Add() chart.ChartType = ExcelChartType.Doughnut '指定用于生成图表的数据区域
chart.DataRange = sheet.Range("A1:B5")
chart.SeriesDataFromRange = False
'指定图表的位置 chart.LeftColumn = 4 chart.TopRow = 2 chart.RightColumn = 12 chart.BottomRow = 22 '设置图表的名称
chart.ChartTitle = "销售额百分比"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 10
'设置图表系列的值 For Each cs As ChartSerie In chart.Series cs.DataPoints.DefaultDataPoint.DataLabels.HasPercentage = True Next '设置图例的位置
chart.Legend.Position = LegendPositionType.Top
'保存工作薄 workbook.SaveToFile("DoughnutChart.xlsx")