Welcome to MSDN Blogs Sign in | Join | Help

Excel services part 5: all about “interactivity”

Now that I have discussed publishing spreadsheets to Excel Services, let’s review how users can “interact” with spreadsheets that Excel Services has generated.  To start, I want to explain what we mean by “interact” because it is anther development-team term that may not be clear to everyone reading this article. 

When we set about building Excel Services, we wanted to provide a richer experience than simply displaying a static spreadsheet in a browser.  For example, we wanted users to be able to be able to change sorts and filters to better understand data they were looking at without leaving the context of the browser.  We wanted users to be able to adjust PivotTables to see exactly they data they wanted to see in order to make better business decisions, again without leaving the context of the browser.  We wanted users to be able to set parameters to perform what-if analysis, again from within their browser.  We call all these sorts of things “interactivity”, since they involve the user taking actions that change the spreadsheet the user is working with, but do so without leaving the context of the browser. 

Specifically, our goals in this area are to allow users to:

  • view spreadsheets in a browser
  • navigate around those spreadsheets
  • perform further exploration of the data in those spreadsheets
  • change parameters to facilitate what-if analysis in said spreadsheets

We did not have a goal to enable full-blown authoring of spreadsheets in a browser – to author spreadsheets, users will need Excel 12.  Also, we did not have time to enable every feature in Excel 12 in the browser, so we focused on features based on the four goals outlined above.  Finally, it is worth noting that if the user has permission, they can always press one button to open the spreadsheet in Excel 12, and they can then do anything they want.

Generally, when we talk about interactivity, we generally group the features we enabled into three areas: worksheets, tables, and PivotTables.  Let’s take a look at the details of what we did in each area.

Interactivity - Worksheets
As we have already seen, when a user is viewing an Excel-Services-generated spreadsheet in a browser, the visual fidelity between the Excel Services spreadsheet and Excel 12 is very good.  Excel Services supports the same layout and formatting capabilities as Excel 12, so to users, a spreadsheet viewed in Excel 12 will look exactly the same as a spreadsheet in a browser (within the constraints of HTML).  This includes basic formatting (e.g. row height and column width, font, colour, grid lines on or off, text rotation, etc.) as well as the new features I have already talked about like Data Bars
, Colour Scales, Table Styles, and some others I have yet to discuss like charts. 

There is one notable difference between Excel 12 and Excel Services, though – when a user is looking at a spreadsheet in their browser that was generated by Excel Services, only one “section” of the spreadsheet will be served up by Excel Services at a time (this is a performance optimization - less HTML needs to be served up to the client … the number of rows and columns can be configured with defaults of 75 rows by 20 columns).  To allow the user to move between sections, we have added paging controls to spreadsheets viewed in the browser.


(Click to enlarge)

In addition to navigating “sections” within a single worksheet, users will be able to do the following when working with a worksheet in a browser.

  • Page between sheets (using tabs just like in Excel)
  • Expand and collapse outlining (using buttons on the side and top of the sheet, again like Excel)
  • Set parameters (see previous post)
  • Refresh external data and calculate the spreadsheet (to see the most recent data or calculations)
  • Find values within the worksheet (note this is a separate feature from browser Find – this feature will search for values in the entire worksheet, even the parts that are outside the current “section”).

You may have noticed the “toolbar” in the previous screenshots – this is where the controls to calculate, refresh external data, and find (as well as other things) are located.


(Click to enlarge)

Also, since I mentioned charts, here’s a shot of a chart in a page generated by Excel Services in a recent build.


(Click to enlarge)

Interactivity - Tables and AutoFilters
If a spreadsheet contains a table
or autofilters, users will be able to set and update sorts and filters.  This includes all of the improvements that I discussed in previous posts here and here with the exception of sorting and filtering by colour.  Specifically, users will be able to:

  • Sort ascending or descending
  • Multi-select filter
  • Top 10 filter
  • Set quick filters (”Above Average,” “Below Average,” “Contains,” “Last Month,” etc.)
  • Set custom filters (“Less Than”, “Contains”, etc.)


(Click to enlarge)

Interactivity - PivotTables
Similarly, if a spreadsheet contains a PivotTable, users will be able to interact with the PivotTable from within their browser.  (Note, I haven’t covered work we have done in the area of PivotTables yet – and we have done a lot -  suffice to say that all of the features we have added to PivotTables in Excel 12 have been implemented on the server.)  This includes:

  • Expand/collapse levels
  • Sort ascending or descending
  • Multi-select filter
  • Top 10 filter
  • Set quick filters (”Above Average,” “Below Average,” “Contains,” “Last Month,” etc.)
  • Set custom filters (“Less Than”, “Contains”, etc.)


(Click to enlarge)

New for Excel 12, for example, is the fact that you can perform all of these operations on any level of a hierarchy that has been added to the PivotTable, and on member properties for those of you using SQL Server Analysis Services.  Much more on that in a series of posts coming soon.

Controlling all this
I can hear the developers reading this asking “what if I don’t want users to be able to sort, filter, etc.?” … for example, if you want to display some data using a PivotTable, but you don’t want people to be able to change the view.  We have made it possible to turn off interactivity.  You can, for instance, allow users to only sort and not filter, to interact with Tables but not with PivotTables, and more.


Controlling Interactivity

That’s the summary of interactivity.  Please let me know if you have questions.  Next time, building applications with Excel web services.

 

Published Wednesday, November 16, 2005 10:30 AM by David Gainer
Filed under:

Comments

# re: Excel services part 5: all about “interactivity”

Wednesday, November 16, 2005 3:51 PM by Jim Rech
David-

I'm still not clear whether users can make entries in 'cells'. I don't see that as a supported interactivity so I guess not, but could you spell it out for me. Thanks.

Jim

# re: Excel services part 5: all about “interactivity”

Wednesday, November 16, 2005 8:35 PM by David Gainer
Hi Jim - users can not type directly into the grid they see in the browser. However, the person saving the spreadsheet to the server can specify one or more cells as "paramteters". When they do this, the user will see a task pane beside thier spreadsheet in the browser - see http://www.isamrad.com/dgainer/s5_11-11-2005.png for an example - and the user can type into the task pane and press Apply. This will be the equivalent of typing into the cells marked as parameters ... the sheet will recalc, all dependant cells will update accordingly, and the resulting spreadsheet will be returned to the user's browser. Does that make sense?

# re: Excel services part 5: all about “interactivity”

Thursday, November 17, 2005 5:34 AM by John Greenan
Looks good. Here's a question. At the moment it looks like Excel 12 will be a big, heavy duty, complex application that's been re-thought and re-imagined so it should be easier to use than Excel 10 (XP).

It would appear that excel services/excel in a browser is a super lightweight version of Excel. So in complexity terms you have a hierarchy excel 10>excel 12>excel services (most to least). And in functionality the hierarchy is 12>10>ws. All good stuff, but is the aim to reduce complexity or increase functionality. Please don't say both (I know the answer is always both, but bear with me).

So, where's the longer term goal? I can see a few options:
1. move more functionality to the browser based front end
2. Move functionality to the "right" place - some stuff would be browser only, other stuff .exe based only.
3. Go all weird and wacky with AJAX or whatever the techie flavour of the month is.

Maybe this is outside of the remit of this blog, but I'd love to hear from someone on the inside about where Microsoft really wants to take Excel over the next few versions.

Initially most firms that I consult to regard spreadsheets as being in the tactical/throwaway category of IT development, but when I hear about stuff I wrote in Excel 95 still being in use it comes to the fore that the lifecycle for spreadsheets is a darn sight longer than most folks think. So, looking over that sort of timeframe is not redundant or silly.

# re: Excel services part 5: all about “interactivity”

Thursday, November 17, 2005 8:59 AM by Tianwei
David, this is great. With these few question answered I can envision Excel service being adopted earlier than the Excel 12 itself:

1. Any browser upgrade needed? What's the earliest version of IE this can work on?

2. Any client side install needed? Be it browser components or Office components?

3. This is going to be a little touchy: how about other browser support (FireFox, etc)?

If minimum or no client side installation is needed then we power users/developers would love to use it to introduce to the broader audience via a much streamlined deployment of applications.

# re: Excel services part 5: all about “interactivity”

Thursday, November 17, 2005 4:27 PM by David Gainer
John, we do spend time a lot of time considering the long-term strategy for our products. While we can never commit to what the future holds, we generally try to put functionality in the "right" place, as you say. In this first version, Excel Services' web interface is designed for browsing and exploring spreadsheets. It is great when you don't have access to an Excel client, or if you want to ensure lock-down and no access to the file (e.g. financial reporting, extranet, regulatory compliance). It is also a great way to integrate Excel content into dashboards and additional context in the portal. But we still believe that Excel client is the best place to author spreadsheets and perform modeling and analysis. For longer-term thinking, you will have to wait for my next blog ... this one is about Excel 12 features ;-)

Tianwei, this will work with IE 6 and above. No browser components or Office components required whatsoever. We plan to support additional browsers, but the level of interactivity available may vary between browsers depending on their support for javascript.

# re: Excel services part 5: all about “interactivity”

Monday, November 21, 2005 6:07 AM by Steve
I know you posted that Excel server will not allow users to modify cell contents in the brower - I presume that this still applies to cells with list restricted data? If so, will it be possible to list restrict the user-definable parameters (to ensure data is available in a vlookup, etc)?
Also, will the browser support any Excel UI components, e.g. macro-linked buttons?

# re: Excel services part 5: all about “interactivity”

Tuesday, November 22, 2005 3:35 PM by David Gainer
Steve, unfortunately this version we did not get to hooking up parameters to restricting data or input validation. There is a way to create pick-lists for parameters using a new SharePoint Portal feature called "filter parts" that I will talk about in a few posts. With respect to the Excel UI components the answer is also no.

# Tech Talk PT » Blog Archive » BI in Office 2007 Resources

New Comments to this post are disabled
 
Page view tracker