Introduction to Excel Services, or “running Excel spreadsheets on a server”

Back in September, I posted an article on the big picture which mentioned that we are creating an all-new “Excel Services†server technology as part of our Excel 12 work.  Some of you may have caught a glimpse of Excel Services being demonstrated as part of our BI announcement in October.  For the next few weeks, I am going to cover the work we have done in this area.

What is it?
Excel Services is brand new server technology that will ship with Office 12. Excel Services supports loading, calculating, and rendering Excel spreadsheets on servers. There are two primary interfaces: a web-based UI that lets you view spreadsheets in the browser, and a web services interface for programmatic access.  I will spend some time on both of these interfaces in future posts.  For now, let’s start with an example of the type of work flow that we anticipate will be common using Excel services’ web-based UI.  Specifically, let’s look at how a sales analyst would share some work done in Excel with a sales manager.

  • A sales analyst authors a sales analysis spreadsheet using Excel 12

(Click to enlarge)

  • The sales analyst then saves their spreadsheet to a SharePoint document library
  • A sales manager, wanting to see the sales analysis, browses to the SharePoint document library and clicks on the link to spreadsheet
  • The sales manager sees a browser-based rendering of the spreadsheet that they can interact with

(Click to enlarge)

So what happened, exactly, to get the spreadsheet in the browser?  Behind the scenes, Excel Services opened the file the sales analyst saved to SharePoint, refreshed any external data in the spreadsheet, calculated any formulas, and rendered the results in the browser.  Specifically, Excel services sends only DHTML to the browser (no ActiveX), so the sales manager could be using any modern browser.  The result is a very high-fidelity version of the analysis that the sales manager can interact with in the browser or, if they have permissions to do so, open up back in Excel.  One point I want to make clear is that Excel 12 is the authoring tool for spreadsheets that run on Excel Services.

Why did we build it?
Customers have been talking to us about server-side scenarios for Excel for quite some time. In fact, when we visit customers, we see some customers are already running Excel on the server to meet some of these scenarios.  There are a variety of reasons customers have asked for server-side spreadsheet execution.  Here are some examples.

  • Providing browser-based access to spreadsheets
  • Incorporating spreadsheets in portals and dashboards
  • Limiting access to spreadsheets either for regulatory and audit concerns or to protect intellectual property in spreadsheets
  • Eliminating “multiple versions of the truth†– or many copies of the same spreadsheet that are out of sync with each other
  • Leveraging servers to offload long-running calculations from desktop machines
  • Reusing logic & business models built in Excel in applications written in other languages without having to re-code the logic/business models

In a nutshell, customers have asked for something that makes it simple to manage, share, and control their important spreadsheets, and that is what Excel Services provides.  One thing I would like to make clear is that Excel Services has been designed from the start to be a scalable, robust, enterprise-class server that provides feature and calculation fidelity with Excel 12.  It is not just a version of excel.exe that runs on the server.  More on this later.

This is a major effort for us and we are excited by the opportunities we think this provides our customers.  Next time I will review (in greater detail) the ways we anticipate customers using the first version of Excel Services.