请问有没有什么办法获取透视表中的展开折叠标记的位置(所属Worksheet的行与列)。并且这个位置能获取到对应的PivotField.HideItemDetail函数,用于实现html渲染之后展开折叠的功能。
image.png (7.9 KB)
@CatPP,
为了实现折叠/展开的需求,你可以先找到想要折叠/展开元素的的PivotField,然后找到对应的PivotItem。通过设置PivotItem.IsHideDetail属性来达到折叠/展开数据的目的。请查看附件。result.zip (14.7 KB)
样例代码如下:
// Create a workbook object.
Workbook workbook = new Workbook(filePath + "sample.xlsx");
PivotTable pivot = workbook.Worksheets[0].PivotTables[0];
//获取需要设置折叠/展开的PivotField。这里以行区域的第一个PivotField为例。
PivotField field = pivot.RowFields[0];
PivotItemCollection items = field.PivotItems;
int itemCount = items.Count;
for (int i = 0; i < itemCount; i++)
{
PivotItem item = field.PivotItems[i];
//找到想要折叠的元素并设置属性值
if (item.Name == "a1")
{
item.IsHideDetail = true;
}
}
//刷新并计算透视表
pivot.RefreshDataFlag = true;
pivot.RefreshData();
pivot.CalculateData();
pivot.RefreshDataFlag = false;
workbook.Save(filePath + "out.html");
希望这些能对你有所帮助。