Excel中的图表能够将数据可视化,方便我们比较分析数据。但也有一定的局限,例如:不能够直接从图表中读出原来数据的准确值。Excel提供的解决方案是,在图表下方添加一个模拟运算表,即在坐标轴下方添加包含建表时所依照的数据的表格。本文旨在介绍通过免费的Free Spire.XLS在C#独立创建Excel文件,添加数据,生成图表,并添加模拟运算表。
需要使用的命名空间:
步骤详解:
Workbook workbook = new Workbook();
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Demo";
sheet.Range[A1"].Value = 月份A2一月A3二月A4三月A5四月A6五月A7六月B1小王B2"].NumberValue = 3.3;
sheet.Range[B32.5;
sheet.Range[B42.0;
sheet.Range[B53.7;
sheet.Range[B64.5;
sheet.Range[B74.0;
sheet.Range[C1小新C23.8;
sheet.Range[C33.2;
sheet.Range[C41.7;
sheet.Range[C53.5;
sheet.Range[C6C74.3;
sheet.Range[D1小白D23.0;
sheet.Range[D32.8;
sheet.Range[D4D52.3;
sheet.Range[D6D73.8;
sheet.Range[A1"].Value = 月份A2一月A3二月A4三月A5四月A6五月A7六月B1小王B2"].NumberValue = 3.3;
sheet.Range[B32.5;
sheet.Range[B42.0;
sheet.Range[B53.7;
sheet.Range[B64.5;
sheet.Range[B74.0;
sheet.Range[C1小新C23.8;
sheet.Range[C33.2;
sheet.Range[C41.7;
sheet.Range[C53.5;
sheet.Range[C6C74.3;
sheet.Range[D1小白D23.0;
sheet.Range[D32.8;
sheet.Range[D4D52.3;
sheet.Range[D6D73.8;
步骤三:利用步骤二填充的数据,生成柱形图,设置其在Excel中的位置,图表名称等。
Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
chart.Datarange = sheet.Range[B1:D7"];
chart.SeriesDataFromrange = false;
chart.TopRow = 7;
chart.Bottomrow = 28;
chart.LeftColumn = 3;
chart.RightColumn =11;
chart.ChartTitle = 带模拟数据表的柱状图示例";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
Spire.Xls.Charts.ChartSerie cs1 = chart.Series[0];
cs1.CategoryLabels = sheet.Range[A2:A7"];
chart.Datarange = sheet.Range[B1:D7"];
chart.SeriesDataFromrange = false;
chart.TopRow = 7;
chart.Bottomrow = 28;
chart.LeftColumn = 3;
chart.RightColumn =11;
chart.ChartTitle = 带模拟数据表的柱状图示例";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
Spire.Xls.Charts.ChartSerie cs1 = chart.Series[0];
cs1.CategoryLabels = sheet.Range[A2:A7"];
步骤四:为柱状图添加模拟数据表。
chart.HasDataTable = true;
步骤五:保存文档为2010版Excel。
完整代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = ";
sheet.Range[3.3;
sheet.Range[2.5;
sheet.Range[2.0;
sheet.Range[3.7;
sheet.Range[4.5;
sheet.Range[4.0;
sheet.Range[3.8;
sheet.Range[3.2;
sheet.Range[1.7;
sheet.Range[3.5;
sheet.Range[4.3;
sheet.Range[3.0;
sheet.Range[2.8;
sheet.Range[2.3;
sheet.Range[3.8;
Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
chart.Datarange = sheet.Range["];
chart.HasDataTable = true;
workbook.SavetoFile(stem.Diagnostics.Process.Start(");
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = ";
sheet.Range[3.3;
sheet.Range[2.5;
sheet.Range[2.0;
sheet.Range[3.7;
sheet.Range[4.5;
sheet.Range[4.0;
sheet.Range[3.8;
sheet.Range[3.2;
sheet.Range[1.7;
sheet.Range[3.5;
sheet.Range[4.3;
sheet.Range[3.0;
sheet.Range[2.8;
sheet.Range[2.3;
sheet.Range[3.8;
Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
chart.Datarange = sheet.Range["];
chart.HasDataTable = true;
workbook.SavetoFile(stem.Diagnostics.Process.Start(");
}
}
}