繁体   English   中英

如何按行和列字段值对Aspose中的数据透视表排序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM