excel 在C#中通过控制台选择透视表筛选的项目并显示

1bqhqjot  于 2023-03-20  发布在  C#
关注(0)|答案(1)|浏览(185)

奇怪的事情发生了,我有一个带有名为“CIV”的筛选字段的透视表,我要做的是在每次迭代中,从筛选器中选择一个项目。
但是,当打印到控制台时,只有筛选项显示为“True”(该项是excel文件中当前选定的项),因此显示为“item.Visible = true;“不起作用。

myPivotField = (Excel.PivotField)myPivotTable.PivotFields("CIV");
int j = 0;
foreach (Excel.PivotItem item in myPivotField.PivotItems())
{
    j++;
    item.Visible = true;
    Thread.Sleep(100);
    Console.WriteLine(j + " - " + item.Name + " - " + item.Visible);
}

理论上,所有的项都应该以“TRUE”值出现在控制台中,因为在每次迭代中我都是这样设置它们的,然而,只有第一个字段出现在“TRUE”中。
我不明白为什么它停止工作了,在之前的一次执行中,它确实开始这样做了,现在它不再这样做了,代码中有什么问题吗?
我的想法是,在每次迭代中,它总是从筛选字段中的第一项开始到最后一项(不管在excel文件中选择了第一项以外的任何项)。

nom7f22z

nom7f22z1#

我已经能够通过如下迭代来解决这个问题:

for (int i = 1; i <= myPivotTableField.PivotItems().Count; i++)
{
    myPivotTableField.CurrentPage = myPivotTableField.PivotItems(i).Name;
}

相关问题