设置图表外观

设置图表外观

在《如何创建图表》中,我们简要介绍了Aspose.Cells提供的图表类型和图表对象,并描述了如何创建一个图表。本文讨论了如何通过设置图表属性来自定义图表的外观:

  • 设置图表区域。
  • 设置图表线条。
  • 应用主题。
  • 为图表和轴设置标题。
  • 使用网格线。

设置图表区域

图表中有不同类型的区域,Aspose.Cells提供了修改每个区域外观的灵活性。开发人员可以通过改变前景色、背景色和填充格式等设置,在一个区域上应用不同的格式设置。

在下面的示例中,我们在图表的不同区域应用了不同的格式设置。这些区域包括:

  • 绘图区域
  • 图表区域
  • SeriesCollection区域
  • SeriesCollection中单个点的区域

以下代码段演示了如何设置图表区域。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(60);
worksheet.Cells["B2"].PutValue(32);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Setting the foreground color of the plot area
chart.PlotArea.Area.ForegroundColor = Color.Blue;
// Setting the foreground color of the chart area
chart.ChartArea.Area.ForegroundColor = Color.Yellow;
// Setting the foreground color of the 1st SeriesCollection area
chart.NSeries[0].Area.ForegroundColor = Color.Red;
// Setting the foreground color of the area of the 1st SeriesCollection point
chart.NSeries[0].Points[0].Area.ForegroundColor = Color.Cyan;
// Filling the area of the 2nd SeriesCollection with a gradient
chart.NSeries[1].Area.FillFormat.SetOneColorGradient(Color.Lime, 1, Aspose.Cells.Drawing.GradientStyleType.Horizontal, 1);
// Saving the Excel file
workbook.Save(dataDir + "book1.out.xls");

设置图表线条

开发人员还可以通过Aspose.Cells API对线条或数据标记的SeriesCollection应用不同类型的样式。以下代码段演示了如何使用Aspose.Cells设置图表线条。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(60);
worksheet.Cells["B2"].PutValue(32);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Setting the foreground color of the plot area
chart.PlotArea.Area.ForegroundColor = Color.Blue;
// Setting the foreground color of the chart area
chart.ChartArea.Area.ForegroundColor = Color.Yellow;
// Setting the foreground color of the 1st SeriesCollection area
chart.NSeries[0].Area.ForegroundColor = Color.Red;
// Setting the foreground color of the area of the 1st SeriesCollection point
chart.NSeries[0].Points[0].Area.ForegroundColor = Color.Cyan;
// Filling the area of the 2nd SeriesCollection with a gradient
chart.NSeries[1].Area.FillFormat.SetOneColorGradient(Color.Lime, 1, Aspose.Cells.Drawing.GradientStyleType.Horizontal, 1);
// Applying a dotted line style on the lines of a SeriesCollection
chart.NSeries[0].Border.Style = Aspose.Cells.Drawing.LineType.Dot;
// Applying a triangular marker style on the data markers of a SeriesCollection
chart.NSeries[0].Marker.MarkerStyle = Aspose.Cells.Charts.ChartMarkerType.Triangle;
// Setting the weight of all lines in a SeriesCollection to medium
chart.NSeries[1].Border.Weight = Aspose.Cells.Drawing.WeightType.MediumLine;
// Saving the Excel file
workbook.Save(dataDir + "book1.out.xls");

将Microsoft Excel 2007/2010主题应用于图表

开发人员可以在下面的示例中为SeriesCollection或其他图表对象应用不同的Microsoft Excel主题/颜色。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiate the workbook to open the file that contains a chart
Workbook workbook = new Workbook(dataDir + "book1.xlsx");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[1];
// Get the first chart in the sheet
Chart chart = worksheet.Charts[0];
// Specify the FilFormat's type to Solid Fill of the first series
chart.NSeries[0].Area.FillFormat.FillType = Aspose.Cells.Drawing.FillType.Solid;
// Get the CellsColor of SolidFill
CellsColor cc = chart.NSeries[0].Area.FillFormat.SolidFill.CellsColor;
// Create a theme in Accent style
cc.ThemeColor = new ThemeColor(ThemeColorType.Accent6, 0.6);
// Apply the them to the series
chart.NSeries[0].Area.FillFormat.SolidFill.CellsColor = cc;
// Save the Excel file
workbook.Save(dataDir + "output.out.xlsx");

设置图表或坐标轴的标题

您可以使用Microsoft Excel在所见即所得的环境中设置图表及其轴的标题。Aspose.Cells还允许开发人员在运行时设置图表及其轴的标题。所有图表及其轴都包含一个Title属性,该属性可用于设置它们的标题,如下面的示例所示。

以下代码段演示了如何设置图表和轴的标题。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(60);
worksheet.Cells["B2"].PutValue(32);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Setting the foreground color of the plot area
chart.PlotArea.Area.ForegroundColor = Color.Blue;
// Setting the foreground color of the chart area
chart.ChartArea.Area.ForegroundColor = Color.Yellow;
// Setting the foreground color of the 1st SeriesCollection area
chart.NSeries[0].Area.ForegroundColor = Color.Red;
// Setting the foreground color of the area of the 1st SeriesCollection point
chart.NSeries[0].Points[0].Area.ForegroundColor = Color.Cyan;
// Filling the area of the 2nd SeriesCollection with a gradient
chart.NSeries[1].Area.FillFormat.SetOneColorGradient(Color.Lime, 1, Aspose.Cells.Drawing.GradientStyleType.Horizontal, 1);
// Setting the title of a chart
chart.Title.Text = "Title";
// Setting the font color of the chart title to blue
chart.Title.Font.Color = Color.Blue;
// Setting the title of category axis of the chart
chart.CategoryAxis.Title.Text = "Category";
// Setting the title of value axis of the chart
chart.ValueAxis.Title.Text = "Value";
// Saving the Excel file
workbook.Save(dataDir + "book1.out.xls");

使用主要网格线

可以自定义主要网格线的外观。隐藏或显示网格线,或定义它们的颜色和其他设置。下面,我们展示如何隐藏网格线以及如何更改它们的颜色。

隐藏主要网格线

开发人员可以通过将 Line 对象的 IsVisible 属性设置为 truefalse 来控制主要网格线的可见性。

以下代码片段演示如何隐藏主要网格线。隐藏主要网格线后,工作表将添加一个没有网格线的柱状图。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(60);
worksheet.Cells["B2"].PutValue(32);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Setting the foreground color of the plot area
chart.PlotArea.Area.ForegroundColor = Color.Blue;
// Setting the foreground color of the chart area
chart.ChartArea.Area.ForegroundColor = Color.Yellow;
// Setting the foreground color of the 1st SeriesCollection area
chart.NSeries[0].Area.ForegroundColor = Color.Red;
// Setting the foreground color of the area of the 1st SeriesCollection point
chart.NSeries[0].Points[0].Area.ForegroundColor = Color.Cyan;
// Filling the area of the 2nd SeriesCollection with a gradient
chart.NSeries[1].Area.FillFormat.SetOneColorGradient(Color.Lime, 1, Aspose.Cells.Drawing.GradientStyleType.Horizontal, 1);
// Hiding the major gridlines of Category Axis
chart.CategoryAxis.MajorGridLines.IsVisible = false;
// Hiding the major gridlines of Value Axis
chart.ValueAxis.MajorGridLines.IsVisible = false;
// Saving the Excel file
workbook.Save(dataDir + "book1.out.xls");

更改主要网格线设置

开发人员不仅可以控制主要网格线的可见性,还可以控制其他属性,包括颜色等。

以下代码片段演示如何更改主要网格线的颜色。设置主要网格线的颜色后,工作表将添加一个具有修改网格线的柱状图。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(60);
worksheet.Cells["B2"].PutValue(32);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Setting the foreground color of the plot area
chart.PlotArea.Area.ForegroundColor = Color.Blue;
// Setting the foreground color of the chart area
chart.ChartArea.Area.ForegroundColor = Color.Yellow;
// Setting the foreground color of the 1st SeriesCollection area
chart.NSeries[0].Area.ForegroundColor = Color.Red;
// Setting the foreground color of the area of the 1st SeriesCollection point
chart.NSeries[0].Points[0].Area.ForegroundColor = Color.Cyan;
// Filling the area of the 2nd SeriesCollection with a gradient
chart.NSeries[1].Area.FillFormat.SetOneColorGradient(Color.Lime, 1, Aspose.Cells.Drawing.GradientStyleType.Horizontal, 1);
// Setting the color of Category Axis' major gridlines to silver
chart.CategoryAxis.MajorGridLines.Color = Color.Silver;
// Setting the color of Value Axis' major gridlines to red
chart.ValueAxis.MajorGridLines.Color = Color.Red;
// Saving the Excel file
workbook.Save(dataDir + "book1.out.xls");

高级主题