0

ピボットテーブルを作成するために、次の EPPlus コードを取得しました。

private void AddPivotTable()
{
    string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5);
    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.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
}

これはちょっとうまくいきます。私はシートでこれを取得します:

ここに画像の説明を入力

次に、シートの NE コーナーにある「ピボットテーブル フィールド リスト」で使用可能な 6 つのフィールドすべてを (手動で) 選択すると、ピボットテーブルの外観が次のように変わります。

ここに画像の説明を入力

ユーザーはそれを「いじる」ことができるので、これはかなり良いことです - 各フィールドで利用可能なデータのサブセットを選択します。しかし、ユーザーがフィールドを手動で選択する必要があるのではなく、ピボットテーブルをこの状態で開始したいと考えています。

そんなことがあるものか?

注: 私は Excel Interop で同様の問題を抱えていましたが、それとは対照的に、EPPlus を使用すると「物事」がはるかに簡単になることがわかりました。それでも、プログラムでフィールドを選択するのは難しいようです...

4

1 に答える 1