[英]How to sort Pivot Table in Aspose by row and column field values?
请找到下面的图像,演示我到底想做什么。
我尝试在下面的代码中执行此操作,但它不会产生正确/可读的Excel文件。 或者,如果我使用注释的代码,它会生成正确的Excel文件,但不能按预期正确排序。
您能帮我实现上图中提到的目标吗?
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)
由于您的要求是根据“数据透视表”报告中的某些特定值/区域自定义排序,因此您无法直接通过“数据透视表”选项实现排序,因此可以在MS Excel中手动确认。 恐怕,您必须首先通过Aspose.Cells API创建数据透视表,然后必须使用其数据刷新数据透视表(即,使用PivoTable.refreshData()和PivotTable.calculateData()等),这样Aspose.Cells应该将数据透视表报表粘贴/渲染到工作表单元格中。 现在使用常规数据排序功能(请参阅文档以供参考: http : //www.aspose.com/docs/display/cellsjava/Data+Sorting )对所需区域进行排序(使用从上到下或从左到右的选项)相应地通过Aspose.Cells API。 这不是那么简单,因为您首先需要找出要分类的区域或区域的一部分(行或列)。 在这里,您可以使用Aspose.Cells API提供的“查找/搜索”选项。
如果您仍然认为可以通过MS Excel中的数据透视表选项直接进行这种自定义排序,请在MS Excel中手动创建所需的数据透视表,保存Excel文件并在您的线程中提供给我们,我们将在此进行检查并为您提供帮助。
我在Aspose担任技术支持/开发人员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.