Имам предварително направен Excel с PivotTable, който получава данни от друг работен лист, попълвам чрез c# код.
В PivotTable има 3 полета за редове, които след като бяха попълнени и Pivot обновени чрез код, направиха всички редове разширени след отваряне на Excel.
Вече се опитах да използвам метода DrilledDown (в полетата, но получавам грешка), ShowDetails работи само в елементите (вътре в полетата).
Накарах го да работи, но отнема твърде много време, защото използва ShowDetails във всеки елемент, има ли друг начин и бърз за свиване на полетата? (отваряне на ексела и да го направите ръчно не е опция :P).
Моят код (който свива полетата са):
listItems.Add("Data");
listItems.Add("Months");
listItems.Add("Grocery");
Microsoft.Office.Interop.Excel.PivotFields pfs = (Microsoft.Office.Interop.Excel.PivotFields)pivot.PivotFields();
foreach (String s in listItems){
Microsoft.Office.Interop.Excel.PivotField pf = (Microsoft.Office.Interop.Excel.PivotField)pivot.PivotFields(s);
foreach (Microsoft.Office.Interop.Excel.PivotItem item in (Microsoft.Office.Interop.Excel.PivotItems)pf.PivotItems())
{
if (item.Value == "(blank)")
item.Visible = false;
item.ShowDetail = false;
}
}
Въпросът е, че може би има лесен и по-бърз начин? Опитвах нещо подобно
pf.DrilledDown = False;
or
pf.ShowDetail = False;
Но не става.. :\ Някакви идеи?
TIA