DioDocs for Excel
DioDocs for Excel
ピボットグラフ
機能 > ピボットグラフ

ピボットグラフは、関連付けられたピボットテーブルのデータをグラフで表します。ピボットグラフには、標準のグラフと同じように、データ系列、カテゴリ、凡例、データ マーカー、軸が表示されます。グラフのタイトル、凡例の位置、データ ラベル、グラフの位置などを変更することもできます。

ピボットグラフは、関連するピボットテーブル内の変更を反映されるため、対話型です。ピボットテーブルのフィールドは、ピボットグラフにボタンとして表示されます。PivotOptionsプロパティを使用して、凡例、軸、値フィールドのボタンを表示するか、フィールド全体の展開または折りたたみボタンを表示するかを構成できます。フィールドボタンをクリックすると、フィルタペインが表示されます。これにより、ピボットグラフのデータをソートしてフィルタリングできます。

ピボットグラフを含むExcelファイルをロードして、変更を加える、変更をExcelに保存することができます。以下の画像は、凡例、軸、および値フィールドボタンを備えたピボットグラフを表示します。

 

ピボットグラフの作成

次は、ピボットグラフを作成する手順を示します。

  1. ピボットテーブルを作成します。
  2. IShapesインタフェースのAddChartメソッドを使用して通常のチャートを追加します。
  3. IChartインタフェースのSetSourceDataメソッドを使用して、ピボットテーブルの範囲内にソース範囲を指定し、通常のグラフをピボットグラフに変換します。
C#
コードのコピー
//ワークブックを初期化します
var workbook = new GrapeCity.Documents.Excel.Workbook();

object[,] sourceData = new object[,] {
{ "注文ID", "製品",               "カテゴリー",              "金額", "日付",                    "国" },
{ 1,          "Bose 785593-0050",      "家電",  4270,     new DateTime(2018, 1, 6),  "アメリカ" },
{ 2,          "Canon EOS 1500D",       "家電",  8239,     new DateTime(2018, 1, 7),  "イギリス" },
{ 3,          "Haier 394L 4Star",      "家電",  617,      new DateTime(2018, 1, 8),  "アメリカ" },
{ 4,          "IFB 6.5 Kg FullyAuto",  "家電",  8384,     new DateTime(2018, 1, 10), "カナダ" },
{ 5,          "Mi LED 40inch",         "家電",  2626,     new DateTime(2018, 1, 10), "ドイツ" },
{ 6,          "Sennheiser HD 4.40-BT", "家電",  3610,     new DateTime(2018, 1, 11), "アメリカ" },
{ 7,          "Iphone XR",             "携帯電話",                9062,     new DateTime(2018, 1, 11), "オーストラリア" },
{ 8,          "OnePlus 7Pro",          "携帯電話",                6906,     new DateTime(2018, 1, 16), "ニュージーランド" },
{ 9,          "Redmi 7",               "携帯電話",                2417,     new DateTime(2018, 1, 16), "フランス" },
{ 10,         "Samsung S9",            "携帯電話",                7431,     new DateTime(2018, 1, 16), "カナダ" },
{ 11,         "OnePlus 7Pro",          "携帯電話",                8250,     new DateTime(2018, 1, 16), "ドイツ" },
{ 12,         "Redmi 7",               "携帯電話",                7012,     new DateTime(2018, 1, 18), "アメリカ" },
{ 13,         "Bose 785593-0050",      "家電",  1903,     new DateTime(2018, 1, 20), "ドイツ" },
{ 14,         "Canon EOS 1500D",       "家電",  2824,     new DateTime(2018, 1, 22), "カナダ" },
{ 15,         "Haier 394L 4Star",      "家電",  6946,     new DateTime(2018, 1, 24), "フランス" },
};

    IWorksheet worksheet = workbook.Worksheets[0];
 worksheet.Range["A6:F21"].Value = sourceData;
 worksheet.Range["D6:D21"].NumberFormat = "¥#,##0.00";
 //ピボットキャッシュを作成します
 var pivotcache = workbook.PivotCaches.Create(worksheet.Range["A6:F21"]);
 //ピボットテーブルを作成します
 var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["A1"], "pivottable1");

 //ピボットテーブルのフィールドを設定します
 pivottable.PivotFields["カテゴリー"].Orientation = PivotFieldOrientation.RowField;
 pivottable.PivotFields["国"].Orientation = PivotFieldOrientation.ColumnField;
 pivottable.PivotFields["金額"].Orientation = PivotFieldOrientation.DataField;

 worksheet.Range["A:I"].AutoFit();

 //縦棒チャートを追加します
 IChart chart = worksheet.Shapes.AddChartInPixel(ChartType.ColumnClustered, 0, 100, 689, 320).Chart;

 //データソースを設定します(ピボットテーブルの範囲を使用します)
 chart.SetSourceData(pivottable.TableRange1);

 //XLSXファイルに保存します
 workbook.Save("createpivotchart.xlsx");

注意:通常のグラフをピボットグラフに変換する場合、以下のグラフのみがサポートされています。それ以外のグラフを追加すると、NotSupportedExceptionがスローされます。

ピボットグラフのボタンの設定

ピボットグラフのボタンを設定する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
chart.PivotOptions.ShowLegendFieldButtons = false;
chart.PivotOptions.ShowAxisFieldButtons = false;

//XLSXファイルに保存します
chart.Legend.Position = LegendPosition.Bottom;

ピボットテーブルの更新

ピボットテーブルを更新してピボットグラフに反映する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//行フィールドを非表示にします
chart.PivotTable.RowFields[0].Orientation = PivotFieldOrientation.Hidden;

ピボットグラフの通常のグラフへの変換

ピボットグラフを通常のグラフに変換する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//ピボットグラフを通常のグラフに変換するために、グラフ内のデータを消去します
pivottable.TableRange2.Clear();

制限事項