 Hello, everyone. I'm Sky. I'm a program manager on the Office Extensibility team. In this video, I'm going to introduce you the new JavaScript API for Excel 2016 and how you can use these APIs to build some awesome add-ins that runs across platforms. I will do this by first giving you an overview of Excel JavaScript APIs and then I will do a quick demo by building Excel add-in using these features. To wrap it up, I will point you to all the resources and support channels we have to help you succeed. With that, let's jump into the overview of what's new in Excel JavaScript APIs. We extended OfficeJS by adding hundreds of new APIs in this release, providing a much richer and deeper interactions with Excel objects, such as Worksheets, Ranges, Tables, Native Charts, Named Items, and their related rich formatting. You can simply enhance your Excel add-ins with all these new powerful capabilities. In the meantime, we will continue to add new Excel APIs to enable add-ins to do even more. Look forward to these new features in the coming updates. We also focus on keeping our API simple and friendly to use. The object model is influenced by Excel VBA and provides familiar object interface. This design makes it really simple to work with complex objects in Excel. On the JavaScript side, we are taking advantage of promises to help you simplify all the complex and nested callback flows in JavaScript. We understand that add-ins need to be performant and allow smooth interactions with users. To help with that, we introduce batching, which allow multiple API requests to be queued and executed all at once. To improve performance, our API also allows you to load only properties that you need in the future, and thus reducing the bandwidth at low times. As with OfficeJS, add-ins with ExcelJS runs across multiple platforms. The new API is already available on Excel 2016 on Windows and Excel Online. Other platforms are also coming soon. Now, let's switch to the demo and build a simple Excel add-in that helped manage inventory together. Assume I'm managing some office supplies for my team and I have my raw inventory data in my spreadsheet. Now, I want to create a simple add-in to get my data in a nice table and highlight the item with lowest inventory. I already have the skeleton code ready here in Visual Studio. The template in Visual Studio gets everything set up for you. You can also choose our Office EOMEN generator to get started or any Web IDE of your choice. Now, let's get started building our add-in. With this release, we are introducing a new utility API to help you detect the host version of Office. This keeps your add-in grace for no matter what version of Office it is running on. This API returns a boolean value that tells you whether the current host supports Excel API 1.1. Moving on, let's try to create our first function to add a table and highlight here. And now we have the function skeleton here. Let's try to take a closer look at what the actual API looks like. With our new API, creating a table is actually quite easy. I just need to navigate to the table collection and call the add method. Giving address and a boolean value of whether there is a table header. That's all we need. Now I give my table a name and set the table to show the total row. I want the total row to actually show the minimum inventory count. Here you can see all I need to do is assign the values to this range. And I can even use a powerful Excel formula directly. Now I load these values back for future reading. These are all requests we queued. This will be sent to the server and get executed all at once when we call the context.async call here. Now let's try to scan through each row, find the minimum, and highlight it. Here the first thing you will notice is probably the beautiful JavaScript promises syntax. I can easily change all my functions here. After all these requests got executed, we will move on to scan through each row and find the minimum. And here you can also see formatting a row with our new PI is quite easy too. All you need to do is to get to the row and find the right fill color for this row. Now we have all the data polished. Let's create a dashboard sheet where I can add a chart. Similarly, I will have the skeleton call here first. And let's take a closer look at how I can create a worksheet. We can add a sheet really easy with our new API by calling the add method on the worksheet collection. Just give a worksheet name that this sheet will be created and then we activate the sheet. Now let's try to create a chart. Similarly, I call the add method on the chart's collection. I'll give a chart type, in this case column custard, and give a data range. And I can also format my chart into a nice one. So I can give my chart a nice title called inventory and I can also make it bold. And then in the end I still call the context.async to get all these queued requests executed. Now we are done coding, let's check it out. Here's my raw inventory data. Let's first try to create a table and highlight the minimum. There you go. And then let's try to create a new sheet and add a chart to it. Nice and beautiful. Here you go. That's our demo. We have lots of resources and support channels available to help you succeed. Dev.office.com has everything you need for office development. We also have our API reference and specs on GitHub together with plenty of real scenario called samples and snippets. Make sure you check them out. We always value our community. In the upcoming releases, we will also start doing public design review. All new designs will be on GitHub for review. Come check them out and let us know your feedbacks. If you have any questions at any time, feel free to post your questions on Stack Overflow. Make sure to tag your questions with OfficeJS tag. We are always here to help. That's all for today. Thank you for watching and happy coding.