在java

时间:2017-08-10 21:06:49

标签: java sorting aspose aspose-cells

我有一个Excel文件,其中一些列已合并,如屏幕截图所示, 我想按升序对TOP列进行排序及其对应的值,然后我将对COLUMN1, COLUMN2, Column3进行排序,但在我想对TOP列标题进行排序之前,例如:TOP COLUMN A应该首先是相应的Sub column以及这六个TOP列的值。

我能够对内容区域进行排序,但我如何才能实现TOP Cols标题的排序?

BEFORE

AFTER

1 个答案:

答案 0 :(得分:0)

由于您要从左到右排序数据,因此需要将以下属性设置为true。

Workbook.getDataSorter().setSortLeftToRight(true);

请参阅以下代码。 第3行从左到右对数据进行排序。您也可以添加更多级别。

<强>爪哇

// Load your Excel file
Workbook wb = new Workbook(dirPath + "sort.xlsx");

// For the first key, we want to sort by assending order
// And we want to sort by row not by column
// using SortLeftToRight property
wb.getDataSorter().setOrder1(SortOrder.ASCENDING);
wb.getDataSorter().setSortLeftToRight(true);

// Access first worksheet
Worksheet ws = wb.getWorksheets().get(0);

// Specify the range of cells
CellArea ca = CellArea.createCellArea("A1", "I7");

// We want to sort by row 3, since index starts from 0
// So 2 means 3
wb.getDataSorter().setKey1(2);

// Sort the workbook data
wb.getDataSorter().sort(ws.getCells(), ca);

// Save the output Excel file
wb.save(dirPath + "output.xlsx");

注意: 我在Aspose担任开发人员传播者