ReoGridは、ワークシート上にフローティングオブジェクトとして表示できるさまざまなチャートタイプをサポートしています。チャートはデータソースが変更されると自動的に更新され、Excelファイルに保存/読み込みされます。
using unvell.ReoGrid.Chart;
using unvell.ReoGrid.Drawing;
| クラス | サンプル | 説明 |
|---|
ColumnChart |  | 縦棒グラフ |
BarChart |  | 横棒グラフ |
LineChart |  | 折れ線グラフ |
AreaChart |  | 面グラフ |
Pie2DChart |  | 2D円グラフ |
DoughnutChart |  | ドーナツグラフ |
var sheet = grid.CurrentWorksheet;
sheet["A2"] = new object[,] {
{ null, 2008, 2009, 2010, 2011, 2012 },
{ "City 1", 3, 2, 4, 2, 6 },
{ "City 2", 7, 5, 3, 6, 4 },
{ "City 3", 13, 10, 9, 10, 9 },
};
var dataRange = sheet.Ranges["B3:F5"]; // The numeric data
var serialNamesRange = sheet.Ranges["A3:A5"]; // Series names (row headers)
var categoryNamesRange = sheet.Ranges["B2:F2"]; // Category names (column headers)
var chart = new ColumnChart
{
Location = new Graphics.Point(220, 160),
Size = new Graphics.Size(400, 260),
Title = "Column Chart Sample",
DataSource = new WorksheetChartDataSource(sheet, serialNamesRange, dataRange)
{
CategoryNameRange = categoryNamesRange,
},
};
sheet.FloatingObjects.Add(chart);
すべてのチャートタイプはChart基底クラスを継承しています。
| プロパティ | 型 | デフォルト | 説明 |
|---|
Title | string | "Chart" | チャートのタイトルテキスト |
DataSource | WorksheetChartDataSource | null | チャートのデータソース |
ShowLegend | bool | true | 凡例を表示するかどうか |
PrimaryLegend | ChartLegend | — | チャートの凡例インスタンス |
DataSerialStyles | DataSerialStyleCollection | — | 各データ系列のスタイル |
Location | Graphics.Point | — | ワークシート上の左上の位置 |
Size | Graphics.Size | — | 幅と高さ |
Bounds | Graphics.Rectangle | — | 位置とサイズの組み合わせ |
Visible | bool | true | チャートを表示するかどうか |
| イベント | 説明 |
|---|
ChartDataChanged | チャートデータが更新されたときに発生します |
DataSourceChanged | データソースが変更されたときに発生します |
ワークシートデータをチャートに接続します。
// Constructor with ranges
var dataSource = new WorksheetChartDataSource(sheet, serialNamesRange, dataRange)
{
CategoryNameRange = categoryNamesRange,
};
// Constructor with string addresses
var dataSource = new WorksheetChartDataSource(sheet, "A3:A5", "B3:F5")
{
CategoryNameRange = sheet.Ranges["B2:F2"],
};
| コンストラクタ | 説明 |
|---|
WorksheetChartDataSource(worksheet) | 空のデータソース |
WorksheetChartDataSource(worksheet, serialNamesRange, dataRange) | 系列名とデータ範囲を指定 |
WorksheetChartDataSource(worksheet, serialNamesRange, dataRange, rowOrColumn) | 系列が行か列かを指定 |
| プロパティ | 型 | 説明 |
|---|
Worksheet | Worksheet | データを含むワークシート |
CategoryNameRange | RangePosition | カテゴリラベルを含む範囲 |
SerialCount | int | データ系列の数(読み取り専用) |
CategoryCount | int | カテゴリの数(読み取り専用) |
Serials | WorksheetChartDataSerialCollection | データ系列のコレクション |
| メソッド | 説明 |
|---|
GetCategoryName(int index) | インデックスでカテゴリラベルを取得 |
AddSerial(worksheet, labelAddress, dataRange) | データ系列を手動で追加 |
GetSerial(int index) | 特定のデータ系列を取得 |
| イベント | 説明 |
|---|
DataChanged | ソースデータが変更されたときに発生します |
チャート内の1つのデータ系列を表します。
| プロパティ | 型 | 説明 |
|---|
Worksheet | Worksheet | データを含むワークシート |
DataRange | RangePosition | 系列データを含む範囲 |
LabelAddress | CellPosition | 系列ラベルセルのアドレス |
Label | string | 系列名(読み取り専用) |
Count | int | データポイントの数(読み取り専用) |
this[int index] | double? | インデックスでデータ値を取得 |
各データ系列の外観をカスタマイズします。
// Access styles by index
var style = chart.DataSerialStyles[0];
| プロパティ | 型 | デフォルト | 説明 |
|---|
FillColor | IColor | (自動) | 棒、面、円スライスの塗りつぶし色 |
LineColor | SolidColor | (自動) | 折れ線グラフの線の色 |
LineWidth | RGFloat | 2f | 線の幅 |
LineStyle | LineStyles | Solid | 線のスタイル(Solid、Dash、Dotなど) |
StartCap | LineCapStyles | None | 始点のキャップスタイル |
EndCap | LineCapStyles | None | 終点のキャップスタイル |
foreach (var style in chart.DataSerialStyles)
{
style.FillColor = new Graphics.SolidColor(100, style.FillColor.ToSolidColor());
}
チャートの凡例を制御します。
// Hide the legend
chart.ShowLegend = false;
// Access legend properties
var legend = chart.PrimaryLegend;
| 値 | 説明 |
|---|
Right | 右側に凡例を表示(デフォルト) |
Bottom | 下部に凡例を表示 |
Left | 左側に凡例を表示 |
Top | 上部に凡例を表示 |
縦棒、横棒、折れ線、面グラフはAxisChartを継承しており、軸の設定をサポートしています。
| プロパティ | 型 | 説明 |
|---|
PrimaryAxisInfo | AxisDataInfo | 主軸の設定 |
SecondaryAxisInfo | AxisDataInfo | 第2軸の設定 |
ShowHorizontalGuideLines | bool | 水平ガイドラインを表示(デフォルト: true) |
ShowVerticalGuideLines | bool | 垂直ガイドラインを表示(デフォルト: false) |
| プロパティ | 型 | 説明 |
|---|
Levels | int | 軸のレベル数 |
Scaler | int | 軸のスケーラー |
Minimum | double | 軸の最小値 |
Maximum | double | 軸の最大値 |
AutoMinimum | bool | 最小値を自動決定 |
AutoMaximum | bool | 最大値を自動決定 |
LargeStride | double | 大きいストライド値(主グリッド線) |
SmallStride | double | 小さいストライド値(副グリッド線) |
チャートのデータソースを視覚的に示すために、ワークシート上のデータ範囲をハイライトします。
sheet.AddHighlightRange(dataRange);
sheet.AddHighlightRange(serialNamesRange);
sheet.AddHighlightRange(categoryNamesRange);
FloatingObject
└─ DrawingObject
└─ DrawingComponent
└─ Chart (base)
├─ AxisChart
│ ├─ ColumnChart
│ │ └─ BarChart
│ ├─ LineChart
│ └─ AreaChart
└─ PieChart
├─ Pie2DChart
└─ DoughnutChart