MESCIUS SPREAD for ASP.NET 10.0J サンプルコード集
セルの中にグラフを表示する

SheetViewクラスのAddSparklineメソッドを使用します。また、複数のセルでグラフの設定を共有する場合には、SheetViewクラスのSparklineContainerプロパティにスパークラインのグループを追加する方法があります。

実行例:

E列のセルに各行のデータを折れ線で、4行目のセルに各列のデータを縦棒のグラフで表示しています。

グラフを表示するには、SPREADのHTTPハンドラを有効にする必要があります。設定方法については、「チャートのHTTPハンドラを登録する」を参照してください。
SheetView sheet = FpSpread1.Sheets[0];
SetTestData2(sheet);
//スパークライン(折れ線)を設定します
ExcelSparklineGroup sparkRows = new ExcelSparklineGroup(new ExcelSparklineSetting()
{
    ManualMax=10,
    ManualMin=-5,
    MaxAxisType=SparklineAxisMinMax.Custom,
    MinAxisType=SparklineAxisMinMax.Custom,
    SeriesColor = System.Drawing.Color.Blue,
    ShowMarkers = true,
    ShowNegative = true,
    MarkersColor = System.Drawing.Color.Blue,
    NegativeColor = System.Drawing.Color.Red
},
SparklineType.Line);
FarPoint.Web.Spread.Model.CellRange data;
for(int row = 0; row < 3; row++)
{
    data = new FarPoint.Web.Spread.Model.CellRange(row, 0, 1, 4);
    sparkRows.Add(new ExcelSparkline(row, 4, sheet, data));              
}
sheet.SparklineContainer.Add(sparkRows);
//スパークライン(縦棒)を設定します
ExcelSparklineGroup sparkCols = new ExcelSparklineGroup(new ExcelSparklineSetting()
{
    SeriesColor = System.Drawing.Color.Blue,
    ShowMarkers = true,
    ShowNegative = true,
    MarkersColor = System.Drawing.Color.Blue,
    NegativeColor = System.Drawing.Color.Red
},
SparklineType.Column);
for(int col = 0; col < 4; col++)
{
    data = new FarPoint.Web.Spread.Model.CellRange(0, col, 3, 1);
    sparkCols.Add(new ExcelSparkline(3, col, sheet, data));
}
sheet.SparklineContainer.Add(sparkCols);
Dim sheet As SheetView = FpSpread1.Sheets(0)
SetTestData2(sheet)
'スパークライン(折れ線)を設定します
Dim sparkRows As New ExcelSparklineGroup(New ExcelSparklineSetting() With {
    .ManualMax = 10,
    .ManualMin = -5,
    .MaxAxisType = SparklineAxisMinMax.[Custom],
    .MinAxisType = SparklineAxisMinMax.[Custom],
    .SeriesColor = System.Drawing.Color.Blue,
    .ShowMarkers = True,
    .ShowNegative = True,
    .MarkersColor = System.Drawing.Color.Blue,
    .NegativeColor = System.Drawing.Color.Red
}, SparklineType.Line)
Dim data As FarPoint.Web.Spread.Model.CellRange
For row As Integer = 0 To 2
    data = New FarPoint.Web.Spread.Model.CellRange(row, 0, 1, 4)
    sparkRows.Add(New ExcelSparkline(row, 4, sheet, data))
Next
sheet.SparklineContainer.Add(sparkRows)
'スパークライン(縦棒)を設定します
Dim sparkCols As New ExcelSparklineGroup(New ExcelSparklineSetting() With {
    .SeriesColor = System.Drawing.Color.Blue,
    .ShowMarkers = True,
    .ShowNegative = True,
    .MarkersColor = System.Drawing.Color.Blue,
    .NegativeColor = System.Drawing.Color.Red
}, SparklineType.Column)
For col As Integer = 0 To 3
    data = New FarPoint.Web.Spread.Model.CellRange(0, col, 3, 1)
    sparkCols.Add(New ExcelSparkline(3, col, sheet, data))
Next
sheet.SparklineContainer.Add(sparkCols)

この例では、テストデータの生成に以下のメソッドを使用しています。

public void SetTestData2(SheetView sheet)
{
    sheet.RowCount = 4; sheet.ColumnCount = 5;
    string tab = "\t", ent = "\r\n";
    string data = "1" + tab + "2" + tab + "-1" + tab + "3" + ent
                     + "2" + tab + "-1" + tab + "10" + tab + "4" + ent
                     + "-1" + tab + "3" + tab + "2" + tab + "1" + ent;
    sheet.SetClip(0, 0, 3, 4, data);
}
Public Sub SetTestData2(sheet As SheetView)
    sheet.RowCount = 4
    sheet.ColumnCount = 5
    Dim tab As String = vbTab, ent As String = vbNewLine
    Dim data As String = "1" + tab + "2" + tab + "-1" + tab + "3" + ent _
                                + "2" + tab + "-1" + tab + "10" + tab + "4" + ent _
                                + "-1" + tab + "3" + tab + "2" + tab + "1" + ent
    sheet.SetClip(0, 0, 3, 4, data)
End Sub

 

 


© MESCIUS inc. All rights reserved.