Spécifier un avertissement de tri lors du tri des données avec C++

Scénarios d’utilisation possibles

Veuillez considérer ces données textuelles, c’est-à-dire {11, 111, 22}. Ces données textuelles sont triées parce que, en termes de texte, 111 vient avant 22. Mais si vous voulez trier ces données non pas comme du texte mais comme des chiffres, alors elles deviendront {11, 22, 111} car numériquement 111 vient après 22. Aspose.Cells fournit la propriété {0} pour résoudre ce problème. Veuillez définir cette propriété à true et vos données textuelles seront triées comme des données numériques. La capture d’écran suivante montre l’avertissement de tri affiché par Microsoft Excel lorsque des données textuelles ressemblant à des données numériques sont triées.

todo:image_alt_text

Code d’exemple

Le code d’exemple suivant illustre l’utilisation de la propriété DataSorter.GetSortAsNumber() comme expliqué précédemment. Veuillez consulter son fichier Excel d’exemple et son fichier Excel de sortie pour plus d’aide.

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Create workbook
    Workbook workbook(srcDir + u"sampleSortAsNumber.xlsx");

    // Access first worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Create cell area
    CellArea ca = CellArea::CreateCellArea(u"A1", u"A20");

    // Create data sorter
    DataSorter sorter = workbook.GetDataSorter();

    // Find the index of column A
    int idx = CellsHelper::ColumnNameToIndex(u"A");

    // Add key in sorter for sorting in ascending order
    sorter.AddKey(idx, SortOrder::Ascending);
    sorter.SetSortAsNumber(true);

    // Perform sort
    sorter.Sort(worksheet.GetCells(), ca);

    // Save the output workbook
    workbook.Save(outDir + u"outputSortAsNumber.xlsx");

    std::cout << "Sorting completed successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}