在排序数据时指定排序警告
Contents
[
Hide
]
可能的使用场景
请考虑这个文本数据,例如 {11, 111, 22}。这个文本数据以这种方式排序是因为按照文本,111在22之前。但是,如果您想将这些数据按照数字而不是文本排序,则会变成 {11, 22, 111},因为从数字上来看,111在22之后。Aspose.Cells提供了DataSorter.SortAsNumber属性来处理这个问题。请将此属性设置为true,您的文本数据将被视为数字数据排序。以下截图显示了当类似于数字数据的文本数据被排序时,Microsoft Excel显示的排序警告。
示例代码
以下示例代码说明了如前述所述使用DataSorter.SortAsNumber属性。请查看其示例Excel文件和输出Excel文件以获得更多帮助。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SpecifyingSortWarningWhileSortingData.class) + "data/"; | |
// Create workbook. | |
Workbook workbook = new Workbook(dataDir + "sampleSortAsNumber.xlsx"); | |
// Access first worksheet. | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Create your cell area. | |
CellArea ca = CellArea.createCellArea("A1", "A20"); | |
// Create your sorter. | |
DataSorter sorter = workbook.getDataSorter(); | |
// Find the index, since we want to sort by column A, so we should know | |
// the index for sorter. | |
int idx = CellsHelper.columnNameToIndex("A"); | |
// Add key in sorter, it will sort in Ascending order. | |
sorter.addKey(idx, SortOrder.ASCENDING); | |
sorter.setSortAsNumber(true); | |
// Perform sort. | |
sorter.sort(worksheet.getCells(), ca); | |
// Save the output workbook. | |
workbook.save(dataDir + "outputSortAsNumber.xlsx"); |