Search code examples
exceljavascript-api-for-office

How to get data of the selected range in Excel Javascript API?


I am trying to write a Excel plugin where I get the data from the currently selected ranges and then serialize it to be sent over rest request. Here is what I got:

Excel.run(function (ctx) {
    var selectedRange = ctx.workbook.getSelectedRanges();

    selectedRange.load('address');

    return ctx.sync().then(function () {
        //selectedRange.address is now available to use
        var selectedRangeJSON = selectedRange.toJSON();

    }).catch(function (error) {
        //handle
    });
}).catch(function (error) {
    //handle
});

The selectedRangeJSON return an object defined here: https://learn.microsoft.com/en-us/javascript/api/excel/excel.interfaces.rangeareasdata?view=office-js

How do get the actual value from this object so I can serialize it?


Solution

  • Figure it out, this fully works:

    Excel.run(function (ctx) {
        var selectedRange = ctx.workbook.getSelectedRange();
    
        selectedRange.load("text");
    
        return ctx.sync().then(function () {
            var selectedRangeJSON = JSON.stringify(selectedRange.text);
    
        }).catch(function (error) {
            //handle
            dialog.openMsgBox(error);
        });
    }).catch(function (error) {
        //handle
        dialog.openMsgBox(error);
    });