如何在Aspose中按行和列字段值sorting数据透视表?

请find下面的图片,展示我想要做什么。

数据透视表用例演示

我试图在下面的代码中这样做,但它不会产生正确/可读的Excel文件。 或者,如果我使用注释的代码,它会生成正确的Excel文件,但不会按预期方式正确sorting。

你能帮我实现上面图片中提到的目标吗?

String sortByColName = "OrderDate"; String sortByRowName = "CategoryName"; PivotFieldCollection colFields = pivotTable.getColumnFields(); PivotFieldCollection rowFields = pivotTable.getRowFields(); PivotField sortByColField = colFields.get(sortByColName); sortByColField.setAutoSort(true); sortByColField.setAscendSort(true); sortByColField.setAutoSortField(2); /* sortByColField.setAutoSortField(-1); */ sortByColField.setAutoShow(true); sortByColField.setAscendShow(true); sortByColField.setAutoShowField(0); PivotField sortByRowField = rowFields.get(sortByRowName); sortByRowField.setAutoSort(true); sortByRowField.setAscendSort(true); sortByRowField.setAutoSortField(2); /* sortByRowField.setAutoSortField(-1); */ sortByRowField.setAutoShow(true); sortByRowField.setAscendShow(true); sortByRowField.setAutoShowField(0) 

由于您的要求是根据数据透视表报告中的某些特定值/区域自定义sorting,因此无法通过数据透视表选项直接实现,因此可以手动在MS Excel中进行确认。 恐怕,你必须先通过Aspose.Cells API创build数据透视表,然后用数据刷新PivotTable(即使用PivoTable.refreshData()和PivotTable.calculateData()等),所以Aspose.Cells应将数据透视表报告粘贴/呈现到工作表单元格中。 现在使用通用数据sortingfunction(请参阅文档以供参考: http : //www.aspose.com/docs/display/cellsjava/Data+Sorting )来对您想要的区域进行sorting(使用从上到下或从左到右的选项)相应地通过Aspose.Cells API。 这并不是那么简单,因为你首先需要找出哪个区域或部分区域(行或列)被整理出来。 在这里,您可以使用Aspose.Cells API提供的查找/search选项。

如果您仍然认为这样的自定义sorting可以直接通过MS Excel中的数据透视表选项完成,请在MS Excel中手动创build您所需的数据透视表,保存Excel文件并提供给我们您的线程 ,我们将尽快检查并帮助您。

我在Aspose担任Support developer / Evangelist。