2016-04-11 11 views
0

正確に何をしたいのかを示す下の画像を見つけてください。行と列のフィールド値でAsposeのピボットテーブルを並べ替える方法は?

Pivot Table Use-Case Demo

私は以下のコードでそうしようとしたが、それは正しい/読み込み可能な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) 

答えて

2

、手動でMS Excelでこれを確認することができます。 Aspose.Cells APIを使用してPivotTableを作成してから、そのデータでPivotTableをリフレッシュする必要があります(PivoTable.refreshData()とPivotTable.calculateData()などを使用する必要があります)。Aspose.Cells PivotTableレポートをワークシートセルにペースト/レンダリングする必要があります。 Aspose.Cells APIを使用して、一般的なデータソート機能(参照先:http://www.aspose.com/docs/display/cellsjava/Data+Sorting)を使用して、上から下または左から右のオプションを使用して、必要な領域をソートします。あなたが最初にソートされる領域(行または列)の領域または部分を見つける必要があるので、それほど単純ではありません。ここでは、Aspose.Cells APIが提供する検索/検索オプションを使用できます。

MS ExcelでPivotTableオプションを使用してこのようなカスタムソートを直接行うことができると思われる場合は、MS Excelで目的のピボットテーブルを手動で作成し、Excelファイルを保存してthreadに提供してくださいあなたはすぐそこにいます。

私はAsposeのSupport developer/Evangelistとして働いています。

+0

右向きのおかげで@Amjad!私はあなたが示唆したように関連する変更を加えましたが、依然として予想されるExcelを生成していません。実際には、FileではなくByteArrayOutputStreamオブジェクトに現在のワークブックを保存しています(コードのAPIは変更できません)。また、同じブックを縦横に2回ソートしています。これは同じリクエストの一部なので、私は単なるリクエスト/スレッドで欲しいものを達成することはできません。私をさらに案内してください! –

+0

ワークブックをストリームやファイルパスに保存しても差はありません。親切にスレッドにフォローアップすることをお勧めします(http://www.aspose.com/community/forums/thread/712040/how-to-sort-pivot-table-in-aspose-by-row-and-column- field-values.aspx)を参照してください。 –

関連する問題