Forum Discussion

J_Taylor40's avatar
J_Taylor40
Copper Contributor
Jul 18, 2021
Solved

Excel Sort Script does not work

I'm new to scripts so I tried to record one. However, the recorded script has errors. I am trying to sort a table by the first column. The script is: function main(workbook: ExcelScript.Workbook) {...
  • Lorenzo's avatar
    Lorenzo
    Jul 19, 2021

    J_Taylor40 

     

    https://docs.microsoft.com/en-us/javascript/api/office-scripts/excelscript/excelscript.worksheet?view=office-scripts#getTable_key_ appears to be the appropriate method. However, they do not say if Table IDs starts at 0 or 1, I suspect 0 though

     

    EDIT: Assuming the 2nd example on https://docs.microsoft.com/en-us/office/dev/scripts/resources/samples/copy-tables-combine works, the line of code:

     

    const headerValues = workbook.getWorksheet(sheetNames[0]).getTables()[0]....

     

    confirms Worksheets and Tables index start at 0

     

    Could you try:

     

     

    function main(workbook: ExcelScript.Workbook) {
      let selectedSheet = workbook.getActiveWorksheet();
    
      // Get 1st Table on selectedSheet
      let firstTable = selectedSheet.getTable(0);
      firstTable.getSort().apply([{ key: 0, ascending: true }]);
    }

     

     

     

    And instead of by ID, by your Table name:

     

     

     

    function main(workbook: ExcelScript.Workbook) {
      let selectedSheet = workbook.getActiveWorksheet();
    
      // Get Table 'Clients' on selectedSheet
      let myTable = selectedSheet.getTable('Clients');
      myTable.getSort().apply([{ key: 0, ascending: true }]);
    }

     

     

     

     

    If any option fails and you get an error message please provide that exact message

    If the 1st (by ID = 0) works I would suggest you use that one so this will still work if you rename the Table later 

     

    EDIT There appears to be an https://stackoverflow.com/questions/tagged/office-scripts?tab=newest&page=1&pagesize=15

Resources