生/ソースデータとは別にピボットテーブルを作成できましたが、次のように、列見出し行にフィルターを提供することでスプレッドシートデータのフィルター処理を可能にするピボットテーブルを使用して、2 つを結合したいと考えています。
私はこのコードを試しました:
private void AddPivotTable()
{
// The commented-out code below placess the PivotTable below the actual data, separate from it:
//string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5);
// Here I am attempting to incorporate the PivotTable within the data itself (one row above it, actually)
string colAlphaRowNum = "A5";
ExcelAddressBase eab = locationWorksheet.Cells[colAlphaRowNum];
ExcelRangeBase erb = locationWorksheet.Cells[6, 1, locationWorksheet.Dimension.End.Row, locationWorksheet.Dimension.End.Column];
var pt = locationWorksheet.PivotTables.Add(eab, erb, "Pivotous");
pt.RowFields.Add(pt.Fields[0]);
pt.RowFields.Add(pt.Fields[1]);
pt.RowFields.Add(pt.Fields[2]);
pt.RowFields.Add(pt.Fields[3]);
pt.RowFields.Add(pt.Fields[4]);
pt.RowFields.Add(pt.Fields[5]);
pt.MultipleFieldFilters = true;
pt.RowGrandTotals = true;
pt.ColumGrandTotals = true;
pt.Compact = true;
pt.CompactData = true;
pt.GridDropZones = false;
pt.Outline = false;
pt.OutlineData = false;
pt.ShowError = true;
pt.ErrorCaption = "[error]";
pt.ShowHeaders = true;
pt.UseAutoFormatting = true;
pt.ApplyWidthHeightFormats = true;
pt.ShowDrill = true;
pt.DataOnRows = false;
pt.FirstHeaderRow = 1; // first row has headers
pt.FirstDataCol = 1; // first col of data
pt.FirstDataRow = 2; // first row of data
pt.TableStyle = TableStyles.Medium6; // There is a "custom" and several Dark, Light, and Medium options
}
...しかし、これは機能しません。生成されたシートを開くと、次のダイアログが表示されます。
「はい」を選択すると、次のように表示されます。
「いいえ」を選択すると、次のように表示されます。
...これは有望ですが、「行ラベル」をドロップダウンし、「(すべて選択)」の選択を解除してから、最初の項目 (「Stern」) を選択すると、次のように表示されます。
これは私が望んでいるものではありません。モデル (手作り) シートで、[すべて選択] の選択を解除し、単一の項目を選択すると、そのデータ (この場合は [フォスター]) のみが含まれるようにデータがフィルター処理されます。
...データの最初の部分を制限されたピボットテーブルに置き換えるのではなく。
これを意図したとおりに機能させるにはどうすればよいですか?