要在工作表中添加面积图,首先需要准备数据源:
var sheet1 = grid.CurrentWorksheet;
sheet1["A2"] = [
[ 2007, 2008, 2009, 2010, 2011, 2012 ],
[ "城市1", 3, 2, 4, 2, 6 ],
[ "城市2", 7, 5, 3, 6, 4 ],
[ "城市3", 13, 10, 9, 10, 9 ],
[ "总计", "=SUM(B3:B5)", "=SUM(C3:C5)", "=SUM(D3:D5)", "=SUM(E3:E5)", "=SUM(F3:F5)" ]
];
工作表中的数据源显示如下:

定义数据系列范围、系列名称范围和类别名称范围:
var dataRange = ReoGrid.RangePosition("B3:F5");
var serialNamesRange = ReoGrid.RangePosition("A3:A5");
var categoryNamesRange = ReoGrid.RangePosition("B2:F2");
sheet1.AddHighlightRange(categoryNamesRange);
sheet1.AddHighlightRange(serialNamesRange);
sheet1.AddHighlightRange(dataRange);
创建面积图的代码:
import win.ui;
/*DSG{{*/
var winform = win.form(text="ReoGrid 图表示例")
/*}}*/
import dotNet.ReoGrid;
var grid = ReoGrid.ReoGridControl(winform);
var sheet1 = grid.CurrentWorksheet;
// 获取当前工作表
var sheet1 = grid.CurrentWorksheet;
sheet1["A2"] = [
[ 2007, 2008, 2009, 2010, 2011, 2012 ],
[ "城市1", 3, 2, 4, 2, 6 ],
[ "城市2", 7, 5, 3, 6, 4 ],
[ "城市3", 13, 10, 9, 10, 9 ],
[ "总计", "=SUM(B3:B5)", "=SUM(C3:C5)", "=SUM(D3:D5)", "=SUM(E3:E5)", "=SUM(F3:F5)" ]
];
var dataRange = ReoGrid.RangePosition("B3:F5");
var serialNamesRange = ReoGrid.RangePosition("A3:A5");
var categoryNamesRange = ReoGrid.RangePosition("B2:F2");
sheet1.AddHighlightRange(categoryNamesRange);
sheet1.AddHighlightRange(serialNamesRange);
sheet1.AddHighlightRange(dataRange);
var chart = ReoGrid.Chart.AreaChart();
chart.Bounds = ReoGrid.Graphics.Rectangle(30, 150, 400, 240);
chart.Title = "面积图示例";
// 指定数据源
// 数据源由系列数据和每个系列数据的名称创建
chart. DataSource = ReoGrid.Chart.WorksheetChartDataSource(
sheet1,serialNamesRange,dataRange
);
chart.DataSource.CategoryNameRange = categoryNamesRange;
// 添加图表到工作表
sheet1.FloatingObjects.Add(chart);
winform.show();
win.loopMessage();
结果如下:

由于最大的面积会覆盖较小的面积,我们可以访问数据系列样式并将所有颜色设置为半透明:
// 使所有系列颜色半透明
for(style in chart.DataSerialStyles){
style.FillColor = ReoGrid.Graphics.SolidColor(100, style.FillColor.ToSolidColor());
}
最终效果:

[]语法,比C#更简洁for...in语法ReoGrid.Graphics.SolidColor类,支持透明度参数这个示例展示了如何在aardio中利用ReoGrid控件创建专业的面积图,并通过调整透明度解决数据重叠的可视化问题。