SOLVED

Excel for Web, Office Scripts: TypeScript/ExelScript Event Listener Support

Copper Contributor

Hi All,

 

I was taking a look at the ExcelScript API but unless I missed something I have the feeling that Event Listeners are not currently implemented in Office Scripts (TypeScript/ExcelScript) for Office 365's Excel for Web...

 

Essentially, I want to add an Event Listener to a Worksheet [ex. onChange.add()] so I can lock the active cell after any data has been inputted...

 

Are Event Listeners even available?

 

I'm not looking for anyone to write any code just a Yes or No answer to whether or not Event Listeners are implemented, and if Yes, a little nudge to the applicable API documentation.

 

Much appreciated,

Terry

5 Replies
best response confirmed by terryAnastassiadis (Copper Contributor)
Solution
I have exploded all api of excel.script and found NO anwser.

If you want to interactive function, script lab may useful.(https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/excel-tutorial?source=recommendations)

@peiyezhu 

 

Thanks for looking into it and your alternative recommendation! Add-ins where my next line of investigation so it's reassuring to get your suggestion. Much appreciated :thumbs_up:

You are welcome.

below for your reference
https://learn.microsoft.com/zh-cn/javascript/api/excel/excel.worksheet?view=excel-js-preview#excel-e...

onSelectionChanged
在特定工作表上更改所选内容时发生。

readonly onSelectionChanged: OfficeExtension.EventHandlers<Excel.WorksheetSelectionChangedEventArgs>;
事件类型
OfficeExtension.EventHandlers<Excel.WorksheetSelectionChangedEventArgs>


await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getItem("Sample");
sheet.onSelectionChanged.add(function (event) {
return Excel.run(async (context) => {
console.log("The selected range has changed to: " + event.address);
await context.sync();
});
});
await context.sync();
});

 

 

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/30-events/events-worksheet.yaml
await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");
    sheet.onChanged.add(onChange);
    await context.sync();

    console.log("Added a worksheet-level data-changed event handler.");
});
@peiyezhu, thanks again, I took a look at the documentation. It's pretty straightforward, the only logistics I would have to tackle is hosting the manifest file as I would have to clear this first with our IT department.
1 best response

Accepted Solutions
best response confirmed by terryAnastassiadis (Copper Contributor)
Solution
I have exploded all api of excel.script and found NO anwser.

If you want to interactive function, script lab may useful.(https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/excel-tutorial?source=recommendations)

View solution in original post