DioDocs for Excel
DioDocs for Excel
ピボットテーブルにスタイルの適用
機能 > ピボットテーブル > ピボットテーブルにスタイルの適用

DioDocs for Excelでは、ピボットテーブルに組み込みスタイルとカスタムスタイルを適用できます。

本機能を使用すると、ユーザーはピボットテーブルを様々なスタイルで保存できます。ピボットテーブルの向き、ページサイズ、ピボットテーブルフィールド、およびその他の多くの特性を含め、ピボットテーブルの表示方法を要件に応じてカスタマイズできます。さまざまなピボットテーブルスタイルを持つスプレッドシートをPDF形式でエクスポートする方法については、このマニュアルの「ピボットテーブルのスタイルや書式のエクスポート」トピックを参照してください。

通常、ワークシートにピボットテーブルを追加すると、デフォルトのピボットテーブルスタイルが自動的に適用されます。ユーザーは、既存の組み込みスタイルをコピーするか、カスタムピボットテーブルスタイルを最初から作成することによって、ワークシートに追加されたピボットテーブルのデフォルトスタイルを変更できます。

ピボットテーブルにスタイルを適用する方法については、以下のセクションを参照してください。

組み込みピボットテーブルスタイルを適用する

組み込みスタイルを適用してピボットテーブルのデフォルト外観を変更するには、IPivotTable インタフェースのStyle プロパティやTableStyleプロパティを使用できます。

以下の画像は、組み込みスタイルを適用したピボットテーブルを表示します。

以下のコードは、ピボットテーブルに組み込みスタイルを適用する方法を示します。

C#
コードのコピー
// ワークブックを初期化します
 Workbook workbook = new Workbook();
 
 // デフォルトワークシートを取得します 
 IWorksheet worksheet = workbook.Worksheets[0];

 // ピボットテーブルを作成します
object[,] sourceData = new object[,] {
{ "注文 ID", "食品",  "カテゴリ",   "分量", "日付",                    "国" },
{ 1,          "キャロット",  "野菜",  4270,    new DateTime(2012, 1, 6),  "アメリカ" },
{ 2,          "ブロコリ", "野菜",  8239,    new DateTime(2012, 1, 7),  "イギリス" },
{ 3,          "バナナ",   "果物",       617,     new DateTime(2012, 1, 8),  "アメリカ" },
{ 4,          "バナナ",   "果物",       8384,    new DateTime(2012, 1, 10), "カナダ" },
{ 5,          "隠元",    "野菜",  2626,    new DateTime(2012, 1, 10), "ドイツ" },
{ 6,          "蜜柑",   "果物",       3610,    new DateTime(2012, 1, 11), "アメリカ" },
{ 7,          "ブロコリ", "野菜",  9062,    new DateTime(2012, 1, 11), "オーストラリア" },
{ 8,          "バナナ",   "果物",       6906,    new DateTime(2012, 1, 16), "ニュージーランド" },
{ 9,          "林檎",    "果物",       2417,    new DateTime(2012, 1, 16), "フランス" },
{ 10,         "林檎",    "果物",       7431,    new DateTime(2012, 1, 16), "カナダ" },
{ 11,         "バナナ",   "果物",       8250,    new DateTime(2012, 1, 16), "ドイツ" },
{ 12,         "ブロコリ", "野菜",  7012,    new DateTime(2012, 1, 18), "アメリカ" },
{ 13,         "キャロット",  "野菜",  1903,    new DateTime(2012, 1, 20), "ドイツ" },
{ 14,         "ブロコリ", "野菜",  2824,    new DateTime(2012, 1, 22), "カナダ" },
{ 15,         "林檎",    "果物",       6946,    new DateTime(2012, 1, 24), "フランス" },
};
   
 worksheet.Range["A20:F33"].Value = sourceData;
 worksheet.Range["A:F"].ColumnWidth = 10;
 
 // ピボットテーブルを追加します
 var pivotcache = workbook.PivotCaches.Create(worksheet.Range["A20:F33"]);
 var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["A1"], "pivottable1");
 
 // フィールドに対して数値フォーマットを設定します
 worksheet.Range["D21:D35"].NumberFormat = "$#,##0";

 // ピボットテーブルフィールドに関連する設定を行います
 var field_Date = pivottable.PivotFields["Date"];
 field_Date.Orientation = PivotFieldOrientation.PageField;

 var field_Category = pivottable.PivotFields["Category"];
 field_Category.Orientation = PivotFieldOrientation.RowField;

 var field_Product = pivottable.PivotFields["Product"];
 field_Product.Orientation = PivotFieldOrientation.ColumnField;
 
 var field_Amount = pivottable.PivotFields["Amount"];
 field_Amount.Orientation = PivotFieldOrientation.DataField;
 
 field_Amount.NumberFormat = "$#,##0";

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

 // ピボットスタイルを設定します
 pivottable.TableStyle = "PivotStyleMedium20";

 worksheet.PageSetup.TopMargin = 30;
 worksheet.PageSetup.LeftMargin = 30;

 worksheet.Range["A1:H16"].Columns.AutoFit();
 
 // ワークブックをPDF形式で保存します。
 workbook.Save(@"81-PivotTableBuiltInStyle.pdf", SaveFileFormat.Pdf);
メモ: ピボットテーブルに組み込みスタイルを適用する際、ShowAsAvailableTableStyleプロパティがTrueに設定されているTableStyleを適用するとInvalidOperationExceptionが発生します。

カスタムピボットテーブルスタイルを適用する

組み込みスタイルで要件が満たさない場合は、IPivotTableインタフェースのStyleプロパティを使用することでカスタムスタイルを作成してピボットテーブルに適用できます。

以下の画像は、カスタムスタイルを適用したピボットテーブルを表示します。

次のコードは、ピボットテーブルにカスタムスタイルを適用する方法を示します。

C#
コードのコピー
 // ワークブックを初期化します
 Workbook workbook = new Workbook();
 
 // デフォルトのワークシートを取得します 
 IWorksheet worksheet = workbook.Worksheets[0];

 object[,] sourceData = new object[,] {
{ "注文 ID", "食品",  "カテゴリ",   "分量", "日付",                    "国" },
{ 1,          "キャロット",  "野菜",  7489,    new DateTime(2018, 1, 6),  "アメリカ" },
{ 2,          "ブロコリ", "野菜",  8239,    new DateTime(2018, 1, 7),  "イギリス" },
{ 3,          "バナナ",   "果物",       617,     new DateTime(2018, 1, 8),  "アメリカ" },
{ 4,          "バナナ",   "果物",       8384,    new DateTime(2018, 1, 10), "カナダ" },
{ 5,          "隠元",    "野菜",  2626,    new DateTime(2018, 1, 10), "ドイツ" },
{ 6,          "蜜柑",   "果物",       3610,    new DateTime(2018, 1, 11), "アメリカ" },
{ 7,          "ブロコリ", "野菜",  9062,    new DateTime(2018, 1, 11), "オーストラリア" },
{ 8,          "バナナ",   "果物",       6906,    new DateTime(2018, 1, 16), "ニュージーランド" },
{ 9,          "林檎",    "果物",       2417,    new DateTime(2018, 1, 16), "フランス" },
{ 10,         "林檎",    "果物",       7431,    new DateTime(2018, 1, 16), "カナダ" },
{ 11,         "バナナ",   "果物",       8250,    new DateTime(2018, 1, 16), "ドイツ" },
{ 12,         "ブロコリ", "野菜",  7012,    new DateTime(2018, 1, 18), "アメリカ" },
{ 13,         "キャロット",  "野菜",  1903,    new DateTime(2018, 1, 20), "ドイツ" },
{ 14,         "ブロコリ", "野菜",  2824,    new DateTime(2018, 1, 22), "カナダ" },
{ 15,         "林檎",    "果物",       6946,    new DateTime(2018, 1, 24), "フランス" },
};
 
 // ソースデータを設定します
 worksheet.Range["A20:F33"].Value = sourceData;
 worksheet.Range["A:F"].ColumnWidth = 10;
 
 // ピボットテーブルを追加します
 var pivotcache = workbook.PivotCaches.Create(worksheet.Range["A20:F33"]);
 var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["A1"], "pivottable1");
 
 // フィールドに対して数値フォーマットを設定します
 worksheet.Range["D21:D35"].NumberFormat = "$#,##0";

 // ピボットテーブルフィールドに関連する設定を行います
 var field_Date = pivottable.PivotFields["Date"];
 field_Date.Orientation = PivotFieldOrientation.PageField;

 var field_Category = pivottable.PivotFields["Category"];
 field_Category.Orientation = PivotFieldOrientation.RowField;

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

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

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

 // CustomPivotstyleというピボットスタイルを作成します
 ITableStyle pivotStyle = workbook.TableStyles.Add("CustomPivotstyle");

 // テーブルスタイルをピボットテーブルスタイルに設定します
 pivotStyle.ShowAsAvailablePivotStyle = true;

 pivotStyle.TableStyleElements[TableStyleElementType.PageFieldLabels].Interior.Color = System.Drawing.Color.LightGreen;
 pivotStyle.TableStyleElements[TableStyleElementType.PageFieldValues].Interior.Color = System.Drawing.Color.LightGreen;

 pivotStyle.TableStyleElements[TableStyleElementType.GrandTotalColumn].Interior.Color = System.Drawing.Color.PowderBlue;
 pivotStyle.TableStyleElements[TableStyleElementType.GrandTotalRow].Interior.Color = System.Drawing.Color.PowderBlue;

 pivotStyle.TableStyleElements[TableStyleElementType.HeaderRow].Interior.Color = System.Drawing.Color.MistyRose;
 pivotStyle.TableStyleElements[TableStyleElementType.FirstColumn].Interior.Color = System.Drawing.Color.LightPink;

 pivotStyle.TableStyleElements[TableStyleElementType.FirstRowStripe].Interior.Color = System.Drawing.Color.SteelBlue;
 pivotStyle.TableStyleElements[TableStyleElementType.SecondRowStripe].Interior.Color = System.Drawing.Color.NavajoWhite;

 // ShowTableStyleRowStripesをtrueに設定します
 pivottable.ShowTableStyleRowStripes = true;

 // ピボットテーブルスタイルを設定します
 pivottable.Style = pivotStyle;
 worksheet.Range["A1:H16"].Columns.AutoFit();
 worksheet.PageSetup.TopMargin = 30;
 worksheet.PageSetup.LeftMargin = 30;

 // ワークブックをPDF形式で保存します
 workbook.Save(@"82-PivotTableCustomStyle.pdf", SaveFileFormat.Pdf);

メモ: ピボットテーブルにカスタムスタイルを適用する際、ShowAsAvailableTableStyleプロパティがFalseに設定されているTableStyleを適用すると、InvalidOperationExceptionが発生します。

関連トピック