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]]')