DioDocs for Excel
DioDocs for Excel
ピボットテーブルの作成
機能 > ピボットテーブル > ピボットテーブルの作成

DioDocs for Excel では、スプレッドシート内に特定のセル範囲またはテーブルをデータソースとして、ピボットテーブルを作成することができます。

まずは、IPivotCachesインタフェースのCreateメソッドを呼び出して、新しいピボットキャッシュを作成します. 次に IPivotTables インタフェースの Add メソッドを呼び出すことで、このキャッシュを使用してスプレッドシート上にピボットテーブルを追加できます。

セル範囲をデータソースとしてピボットテーブルを作成する

特定のセル範囲をデータソースとするピボットテーブルを作成する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//PivotCacheのソースデータ
object[,] sourceData = new object[,] {
    { "Order ID", "Product",  "Category",   "Amount", "Date",                    "Country" },
    { 1,          "Carrots",  "Vegetables",  4270,    new DateTime(2012, 1, 6),  "United States" },
    { 2,          "Broccoli", "Vegetables",  8239,    new DateTime(2012, 1, 7),  "United Kingdom" },
    { 3,          "Banana",   "Fruit",       617,     new DateTime(2012, 1, 8),  "United States" },
    { 4,          "Banana",   "Fruit",       8384,    new DateTime(2012, 1, 10), "Canada" },
    { 5,          "Beans",    "Vegetables",  2626,    new DateTime(2012, 1, 10), "Germany" },
    { 6,          "Orange",   "Fruit",       3610,    new DateTime(2012, 1, 11), "United States" },
    { 7,          "Broccoli", "Vegetables",  9062,    new DateTime(2012, 1, 11), "Australia" },
    { 8,          "Banana",   "Fruit",       6906,    new DateTime(2012, 1, 16), "New Zealand" },
    { 9,          "Apple",    "Fruit",       2417,    new DateTime(2012, 1, 16), "France" },
    { 10,         "Apple",    "Fruit",       7431,    new DateTime(2012, 1, 16), "Canada" },
    { 11,         "Banana",   "Fruit",       8250,    new DateTime(2012, 1, 16), "Germany" },
    { 12,         "Broccoli", "Vegetables",  7012,    new DateTime(2012, 1, 18), "United States" },
    { 13,         "Carrots",  "Vegetables",  1903,    new DateTime(2012, 1, 20), "Germany" },
    { 14,         "Broccoli", "Vegetables",  2824,    new DateTime(2012, 1, 22), "Canada" },
    { 15,         "Apple",    "Fruit",       6946,    new DateTime(2012, 1, 24), "France" },
};

//ワークブックを初期化し、既定のワークシートを取得します
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];

//範囲にデータを割り当てます
worksheet.Range["A1:F16"].Value = sourceData;

//ピボットを作成します
var pivotcache = workbook.PivotCaches.Create(worksheet.Range["A1:F16"]);
var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["L7"], "pivottable1");

テーブルをデータソースとしてピボットテーブルを作成する 

テーブルをデータソースとするピボットテーブルを作成する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// 新しいワークブックを生成します
var workbook = new Workbook();

// テーブル用のデータを生成します
object[,] sourceData = new object[,] {
    { "Order ID", "Product",               "Category",              "Amount", "Date",                    "Country" },
    { 1,          "Bose 785593-0050",      "Consumer Electronics",  4270,     new DateTime(2018, 1, 6),  "United States" },
    { 2,          "Canon EOS 1500D",       "Consumer Electronics",  8239,     new DateTime(2018, 1, 7),  "United Kingdom" },
    { 3,          "Haier 394L 4Star",      "Consumer Electronics",  617,      new DateTime(2018, 1, 8),  "United States" },
    { 4,          "IFB 6.5 Kg FullyAuto",  "Consumer Electronics",  8384,     new DateTime(2018, 1, 10), "Canada" },
    { 5,          "Mi LED 40inch",         "Consumer Electronics",  2626,     new DateTime(2018, 1, 10), "Germany" },
    { 6,          "Sennheiser HD 4.40-BT", "Consumer Electronics",  3610,     new DateTime(2018, 1, 11), "United States" },
    { 7,          "Iphone XR",             "Mobile",                9062,     new DateTime(2018, 1, 11), "Australia" },
    { 8,          "OnePlus 7Pro",          "Mobile",                6906,     new DateTime(2018, 1, 16), "New Zealand" },
    { 9,          "Redmi 7",               "Mobile",                2417,     new DateTime(2018, 1, 16), "France" },
    { 10,         "Samsung S9",            "Mobile",                7431,     new DateTime(2018, 1, 16), "Canada" },
    { 11,         "OnePlus 7Pro",          "Mobile",                8250,     new DateTime(2018, 1, 16), "Germany" },
    { 12,         "Redmi 7",               "Mobile",                7012,     new DateTime(2018, 1, 18), "United States" },
    { 13,         "Bose 785593-0050",      "Consumer Electronics",  1903,     new DateTime(2018, 1, 20), "Germany" },
    { 14,         "Canon EOS 1500D",       "Consumer Electronics",  2824,     new DateTime(2018, 1, 22), "Canada" },
    { 15,         "Haier 394L 4Star",      "Consumer Electronics",  6946,     new DateTime(2018, 1, 24), "France" },
};

// データをセル範囲に展開する
IWorksheet worksheet = workbook.Worksheets[0];
worksheet.Range["G1:L16"].Value = sourceData;
worksheet.Range["G:L"].ColumnWidth = 15;

// データを展開したセル範囲を元にテーブルを生成します
ITable table = worksheet.Tables.Add(worksheet.Range["G1:L16"], true);

// テーブルをデータソースとしてピボットテーブルを作成します
var pivotcache = workbook.PivotCaches.Create(table);
var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["A1"], "pivottable1");
worksheet.Range["J1:J16"].NumberFormat = "$#,##0.00";

// ピボットテーブルのフィールドを設定します
var field_Category = pivottable.PivotFields["Category"];
field_Category.Orientation = PivotFieldOrientation.ColumnField;

var field_Product = pivottable.PivotFields["Product"];
field_Product.Orientation = PivotFieldOrientation.RowField;

var field_Amount = pivottable.PivotFields["Amount"];
field_Amount.Orientation = PivotFieldOrientation.DataField;
field_Amount.NumberFormat = "$#,##0.00";

var field_Country = pivottable.PivotFields["Country"];
field_Country.Orientation = PivotFieldOrientation.PageField;

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

// ワークブックを保存します
workbook.Save("CreatePivotTableUsingTable.xlsx");


制限事項

DioDocs for Excelは、テーブルの一部を参照するような方法はサポートしていません。(例:'Table1[[Column1]:[Column3]]')