Excel Services Development Roadmap
Published: May 2010
An important aspect of Excel Services is that solution developers can use its power programmatically from their applications. These applications can be line-of-business (LOB) products or custom enterprise solutions that an organization develops internally.
Following are examples of these applications:
Multitiered applications, with the presentation layer implemented as a Web application (for example, an ASP.NET application) that calls Excel Web Services.
Applications within Microsoft SharePoint Server 2010, or integrated with LOB products.
There are five types of development that you can do by using Excel Services:
Develop solutions by using Excel Web Services
Extend the Microsoft Excel function library in Excel Services by using user-defined functions (UDFs)
Customize the Excel Web Access Web Part
Use the REST API to perform operations against Excel workbooks
Following are the main scenarios for Excel Web Services:
Server-side Excel calculation
This scenario is application-centric. In this scenario, you use models defined in Excel workbooks and calculated on the server as part of application logic.
Automating workbook updates on the server
This scenario is file-centric. In this scenario, Excel Web Services processes a workbook, and saves copies of the workbook or snapshots.
Opening workbooks in edit sessions
Excel Web Services supports opening workbooks in edit sessions in SharePoint Server 2010. In this scenario, you can use code to edit a workbook.
Server-Side Excel Calculation
For server-side Excel calculation, a custom application typically uses an Excel model as part of its logic. Instead of having to re-code Excel workbook business logic in a programming language, the business user can maintain the model in Excel in a server location. The developer never needs to change a line of code in the application that uses the model created by the business user.
In this scenario, the custom application repeatedly calls Excel Web Services, which sends the calls to a back-end calculation service. Excel Calculation Services does the following:
Loads the specified Excel workbook
Processes the workbook (for example, refreshes data or performs calculations)
Sends the results to the custom application
Automating Workbook Updates on the Server
When developers automate the updating of Excel workbooks on the server, they often have two objectives:
Generate Excel files or modify Excel templates by using the Open XML Formats, and then calculate the generated Excel file.
Periodically open an Excel file to refresh external data (once, or maybe multiple times per user), and then calculate the resulting workbooks and save them or send them in e-mail messages to various users.
In this scenario, a custom application uses Excel Web Services to do the following:
Load the specified Excel workbook
Process the workbook (for example, refresh data or perform calculations)
The custom application retrieves the live version of the workbook or snapshot and then saves the workbook or snapshot by using Excel Web Services.
When you make changes to a workbook—for example, by setting values to a range by using Excel Web Services—the changes to the workbook are preserved only for that particular session. The changes are not saved or persisted back to the original workbook. When the current workbook session ends (for example, when you call the CloseWorkbook method, or when the session times out), changes that you made are lost.
If you want to save changes that you make to a workbook, you can use the GetWorkbook method and then save the workbook by using the SaveWorkbook method or the SaveWorkbookCopy method. For more information about the Excel Web Services API, see Microsoft.Office.Excel.Server.WebServices.
Using Excel Web Services
You can use Excel Web Services as:
A regular Web service, by calling the Web methods through SOAP over HTTP.
A local assembly, by linking directly to Microsoft.Office.Excel.Server.Webservices.dll.
For more information about when you should link directly to Microsoft.Office.Excel.Server.Webservices.dll, see Loop-Back SOAP Calls and Direct Linking.
For information about the Excel Web Services API, see the namespace reference documentation. For an example of how to develop a custom application by using Excel Web Services, see Walkthrough: Developing a Custom Application Using Excel Web Services.
Excel Services supports managed-code UDFs. Excel Services UDFs give you the ability to use formulas in cells to call custom functions written in managed code and deployed to SharePoint Server 2010. You can create UDFs to:
Call custom mathematical functions.
Get data from custom data sources into worksheets.
Call Web services from the UDFs.
Wrap calls to existing native code library functions—for example, existing Excel UDFs.
For more information about Excel Services UDFs, see Understanding Excel Services UDFs.
You can use the extensible properties of the Excel Web Access Web Part to:
Configure Excel Web Access programmatically.
Change Excel Web Access properties programmatically.
Apply a theme or brand a Web Part page by using cascading style sheets (CSS).
Using Excel Web Access Web Part Extensibility
For information about:
Excel Web Access extensible properties, see the namespace reference documentation.
Excel Web Access CSS, see the CSS reference documentation.
How to programmatically configure a Web Part, see the SharePoint Foundation SDK.
The REST API in Excel Services is new in SharePoint Server 2010. By using the REST API, you can access workbook parts or elements directly through a URL.
The discovery mechanisms built into the Excel Services REST API also enable developers and users to explore the content of a workbook manually or programmatically, by supplying Atom feeds that contain information about the elements that reside in a specific workbook. The resources that you can access through the REST API are ranges, charts, tables, and PivotTables.
Using the Atom feed provided by the REST API enables an easier way to get to the data that you care about. The feed contains traversable elements that allow any piece of code to discover what elements exist in a workbook.
For more information, see Excel Services REST API.