X++:
//XlSortOrder
#define.xlAscending(0x00000001)
#define.xlDescending(0x00000002)
//XlYesNoGuess
#define.xlGuess(0x00000000)
#define.xlNo(0x00000002)
#define.xlYes(0x00000001)
//XlSortOrientation
#define.xlSortRows(0x00000001)
#define.xlSortColumns(0x00000002)
static void SortExcel(Args _args)
{
ComExcelDocument_Ru excel = new ComExcelDocument_Ru();
COM Doc;
COM App;
COM Sheet;
COM r;
int row;
;
excel.newFile();
excel.Visible(False);
Doc = excel.getComDocument();
App = Doc.Application();
sheet = App.ActiveSheet();
for (row = 1; row <= 200; row++)
{
r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(1, row));
r.Value2(ComVariant::createFromInt(row));
r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(2, row));
r.Value2(ComVariant::createFromInt(row mod 7));
r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(3, row));
r.Value2(ComVariant::createFromInt(row mod 11));
}
r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(1, 1), ComExcelDocument_Ru::numToNameCell(3, 1));
r = r.EntireColumn();
r.Sort(ComVariant::createFromCOM(Sheet.Range("C1")), ComVariant::createFromInt(#xlAscending),
ComVariant::createNoValue(),
ComVariant::createFromCOM(Sheet.Range("B1")), ComVariant::createFromInt(#xlDescending),
ComVariant::createFromCOM(Sheet.Range("A1")), ComVariant::createFromInt(#xlAscending),
ComVariant::createFromInt(#xlNo), ComVariant::createNoValue(), ComVariant::createFromBoolean(True),
ComVariant::createFromInt(#xlSortRows));
excel.Visible(True);
}