Excel Bot is a bot built with the Microsoft Bot Framework that demonstrates how to use Excel with the Microsoft Graph API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ExcelBot Upgrade to use Graph SDK over ExcelRESTService Mar 29, 2018
.gitignore Updated README to include info on creating Cosmos DB Mar 29, 2018
CONTRIBUTING.md Initial commit Sep 20, 2016


Excel Bot

Excel Bot is a sample that demonstrates how to use the Microsoft Graph and specifically the Excel REST API to access Excel workbooks stored in OneDrive for Business through a conversational user interface. It is written in C# and it uses the Microsoft Bot Framework and the Language Understanding Intelligent Service (LUIS).

Note: The code in this sample was originally written for a user experience prototype and does not necessarily demonstrate how to create production quality code.


This sample requires the following:

  • Visual Studio 2015 with Update 3
  • An Office 365 for business account. You can sign up for an Office 365 Developer subscription that includes the resources that you need to start building Office 365 apps.

Getting started

Complete the these steps to setup your development environment to build and test the Excel bot:

  • Download and install the Azure Cosmos DB Emulator
  • Clone this repo to a local folder
  • Rename the ./ExcelBot/PrivateSettings.config.example file to PrivateSettings.config.
  • Open the ExcelBot.sln solution file
  • Register the bot in the Bot Framework
  • Copy the bot MicrosoftAppId and MicrosoftAppPassword to the PrivateSettings.config file
  • Register the bot to call the Microsoft Graph
  • Copy the Azure Active Directory Client Id and Secret to the PrivateSettings.config file
  • Create a new model in the LUIS service
  • Import the LUIS\excelbot.json file into LUIS
  • Train and publish the LUIS model
  • Copy the LUIS model id and subscription key to the Dialogs\ExcelBotDialog.cs file
  • (Optional) Enable Web Chat for the bot in the Bot Framework and copy the Web Chat embed template the chat.htm file
  • (Optional) To get the bot to send telemetry to Visual Studio Application Insights, copy the instrumentation key to the following files: ApplicationInsights.config, default.htm, loggedin.htm, chat.htm
  • Build the solution
  • Press F5 to start the bot locally
  • Test the bot locally with the Bot Framework Emulator
  • Create a web app in Azure
  • Create an Azure Cosmos DB in Azure that uses the SQL API
  • Replace the bots host name in the PrivateSettings.config file
  • Replace the database URI and key in the PrivateSettings.config file
  • Publish the solution to the Azure web app
  • Test the deployed bot using the Web Chat control by browsing to the chat.htm page

Register bot to call Graph

Head over to the Application Registration Portal to quickly get an application ID and secret.

  1. Using the Sign in link, sign in with either your Microsoft account (Outlook.com), or your work or school account (Office 365).

  2. Click the Add an app button. Enter a name and click Create application.

  3. Locate the Application Secrets section, and click the Generate New Password button. Copy the password now and save it to a safe place. Once you've copied the password, click Ok.

  4. Locate the Platforms section, and click Add Platform. Choose Web, then enter http://<BOT_HOST_NAME>/callback, replacing <BOT_HOST_NAME> with the hostname for your bot under Redirect URIs.

    Note: If you are running this locally and on Azure, you should add two redirect URLs here, one to your local instance and one to your Azure web app.

  5. Click Save to complete the registration. Copy the Application Id and save it along with the password you copied earlier. We'll need those values soon.

Give us your feedback

Your feedback is important to us.

Check out the sample code and let us know about any questions and issues you find by submitting an issue directly in this repository. Provide repro steps, console output, and error messages in any issue you open.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.


Copyright (c) 2016 Microsoft. All rights reserved.