Java 如何按行和列字段值对Aspose中的透视表进行排序?
请找到下面的图片,展示我到底想做什么 我尝试在下面的代码中这样做,但它不能生成正确/可读的Excel文件。或者,如果我使用注释代码,它会生成正确的Excel文件,但不会按照预期正确排序 你能帮我实现上图中提到的目标吗Java 如何按行和列字段值对Aspose中的透视表进行排序?,java,excel,pivot-table,aspose,aspose-cells,Java,Excel,Pivot Table,Aspose,Aspose Cells,请找到下面的图片,展示我到底想做什么 我尝试在下面的代码中这样做,但它不能生成正确/可读的Excel文件。或者,如果我使用注释代码,它会生成正确的Excel文件,但不会按照预期正确排序 你能帮我实现上图中提到的目标吗 String sortByColName = "OrderDate"; String sortByRowName = "CategoryName"; PivotFieldCollection colFields = pivotTable.getColumnField
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()和PivoTable.calculateData()等),因此Aspose.Cells应将数据透视表粘贴/呈现到工作表单元格中。现在,通过Aspose.Cells API使用通用数据排序功能(请参阅文档以供参考:)对所需区域进行相应的排序(使用从上到下或从左到右的选项)。这并不是那么简单,因为您首先需要找出要排序的区域或区域的一部分(行或列)。在这里,您可以使用Aspose.Cells API提供的查找/搜索选项 如果您仍然认为可以通过MS Excel中的数据透视表选项直接进行自定义排序,请务必在MS Excel中手动创建所需的数据透视表,保存Excel文件并在中提供给我们,我们将尽快检查并帮助您
我在Aspose担任支持开发人员/宣传员。由于您的要求是根据数据透视表报表中的某些特定值/区域自定义排序,因此无法通过数据透视表选项直接实现,您可以在MS Excel中手动确认。恐怕您必须首先通过Aspose.Cells API创建数据透视表,然后使用数据透视表刷新数据(即使用PivoTable.refreshData()和PivoTable.calculateData()等),因此Aspose.Cells应将数据透视表粘贴/呈现到工作表单元格中。现在,通过Aspose.Cells API使用通用数据排序功能(请参阅文档以供参考:)对所需区域进行相应的排序(使用从上到下或从左到右的选项)。这并不是那么简单,因为您首先需要找出要排序的区域或区域的一部分(行或列)。在这里,您可以使用Aspose.Cells API提供的查找/搜索选项 如果您仍然认为可以通过MS Excel中的数据透视表选项直接进行自定义排序,请务必在MS Excel中手动创建所需的数据透视表,保存Excel文件并在中提供给我们,我们将尽快检查并帮助您
我在Aspose担任支持开发者/布道者。感谢@Amjad为我指明了正确的方向!我已经按照您的建议进行了相关更改,但仍然无法生成预期的Excel。实际上,我正在将当前工作簿保存到ByteArrayOutputStream对象而不是文件(我无法更改代码的API)。此外,我对同一工作簿进行了两次排序(垂直和水平)。因为,这是同一个请求的一部分,我不确定,我可以在单个请求/线程中实现我想要的。请进一步引导我!嗯,将工作簿保存到流或文件路径不会有任何区别。我们建议您关注您的帖子()以供参考。感谢@Amjad提供正确的方向!我已经按照您的建议进行了相关更改,但仍然无法生成预期的Excel。实际上,我正在将当前工作簿保存到ByteArrayOutputStream对象而不是文件(我无法更改代码的API)。此外,我对同一工作簿进行了两次排序(垂直和水平)。因为,这是同一个请求的一部分,我不确定,我可以在单个请求/线程中实现我想要的。请进一步引导我!嗯,将工作簿保存到流或文件路径不会有任何区别。我们建议您关注您的帖子()以供参考。