Excel.PivotField.DataRange.Cells.Group不起作用。为什么?

时间:2015-07-06 13:10:30

标签: c# excel vsto

以下代码不会构建。

            var Date = (Excel.PivotField)pivotTable.PivotFields("Date");
            Date.Orientation = Excel.XlPivotFieldOrientation.xlColumnField;
            Date.Position = 1;
            Date.DataRange.Cells[1].Group(true, true, Type.Missing, GroupParam);

Group被标记为导致错误。错误消息为'object' does not contain a definition for 'Group' and no extension method 'Group' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

如何解决此错误?

我正在使用VS 2012和VSTO以及加载快递

2 个答案:

答案 0 :(得分:1)

如果遇到编译问题,您应该声明中间变量。从测试中可以明显看出Group方法存在并且您的代码可以访问它。给编译器一些帮助并声明变量:

这种哲学的极端版本​​对我来说很合适Group

private void button2_Click(object sender, EventArgs e)
{

    Excel.Worksheet sht = app.ActiveSheet;
    Excel.PivotTable pt = sht.PivotTables(1);
    Excel.PivotField pf = pt.PivotFields("DATE");

    Excel.Range rng = pf.DataRange;

    Excel.Range cell = rng.Cells[1];
    cell.Group(true, true, Type.Missing, new bool[] { false, false, false, false, true, true, false });
}

答案 1 :(得分:0)

Excel.Range rng = pf.DataRange;

    Excel.Range cell = rng.Cells[1];
    cell.Group(true, true, Type.Missing, new bool[] { false, false, false, true, false, true, true });

如上所述,在bool数组中有多个参数传递为true和false。该值设置为true或false,具体取决于您想要的月份,年份等过滤器。

见图片。参数顺序与传递的值相同 enter image description here