<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Cum Grano Salis</title><subtitle type="html" /><id>http://blogs.msdn.com/cumgranosalis/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/cumgranosalis/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-05-07T13:28:49Z</updated><entry><title>How to seamlessly embed data from Excel Services spreadsheets into Word</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/09/how-to-seamlessly-embed-data-from-excel-services-spreadsheets-into-word.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/09/how-to-seamlessly-embed-data-from-excel-services-spreadsheets-into-word.aspx</id><published>2009-11-09T17:00:00Z</published><updated>2009-11-09T17:00:00Z</updated><content type="html">&lt;p&gt;One of the fun things about working on the programmability aspects of Excel Services is realizing just how many interesting scenarios exist that you never thought of originally. I got an IM from &lt;a href="http://www.bing.com/search?q=%22dany+hoter%22+site%3Ablogs.msdn.com&amp;amp;first=11&amp;amp;FORM=PORE"&gt;Dany Hoter&lt;/a&gt; asking for help on an issue he ran into with one of his customers. I have been working with Dany for about 10 years now and he always has interesting questions and ideas. This time around, the problem revolved around a complicated word document that contained links to Excel data – the word document would update and grab data from the workbook via automation (OLE embedding essentially). For a number of reasons, Dany wanted to remove the dependency on the Excel client and was wondering how to go about it. Eran from the Excel Services team suggested looking into fields and that’s how Dany landed in my IM window.&lt;/p&gt; &lt;p&gt;This is where the fun part begins. In Word, one can insert fields into the document that have certain functionality. The most used ones are probably the document Index, page numbers and Date/Time. One of those fields is an IncludeText field which can take text from various sources and put it inside the field. To add such a field, you use the “Quick Parts” drop-down in the “Insert” ribbon tab:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb.png" width="392" height="235"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once selected, you are presented with a slew of options – the one you want is the “IncludeText” field:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_4.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb_1.png" width="404" height="266"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;When the IncludeText field is selected, the user is presented with two more panes – the file name or URL from which to take the data (that’s in the middle) and the options of the field (that’s on the right).&lt;/p&gt; &lt;p&gt;In the URL field, we supply an Excel REST URL that points to our desired cell – this should be a REST URL that’s presented in the Atom format – that way we can traverse the data and get back what we want. In my post about &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx"&gt;getting range data from Excel Services&lt;/a&gt;, there’s an example for such a link. Here’s what the link looks like for our case here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://tsdlt2/_vti_bin/ExcelRest.aspx/docs/Bugs.xlsx/Model/Ranges('PersonalBugCount')?$format=atom"&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/docs/Bugs.xlsx/Model/Ranges('PersonalBugCount')?$format=atom&lt;/a&gt;&lt;/p&gt; &lt;p&gt;As you can see, we are going to a spreadsheet called “Bugs.xlsx” and asking for the range called “PersonalBugCount”. The parameter $format is set to atom to instruct Excel Services to return an XML representing the data. The result (removed some elements for brevity) looks like this:&lt;/p&gt; &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #f2f2f2; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242"&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&amp;lt;entry xmlns:x="http://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;title type="text"&amp;gt;AverageBugCount&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;!-- Removed stuff --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;content type="application/xml"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;x:range name="AverageBugCount"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;x:v&amp;gt;1.3&amp;lt;/x:v&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;x:fv&amp;gt;1.3&amp;lt;/x:fv&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/x:range&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/content&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #f2f2f2; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&amp;lt;/entry&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;We now need to set two more fields in the dialog – the namespace mappings and the XPath expression – luckily, for the case where you want a single value, both of these are the same and require no modification.&lt;/p&gt; &lt;p&gt;Namespace Mapping is used in conjunction with the XPath expression – the XPath expression needs to know what aliases to use for what namespaces. In this case, we have two namespaces we need to use:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.w3.org/2005/Atom"&gt;http://www.w3.org/2005/Atom&lt;/a&gt; – this is the namespace for the ATOM scheme.&lt;/p&gt; &lt;p&gt;&lt;a href="http://schemas.microsoft.com/office/2008/07/excelservices/rest"&gt;http://schemas.microsoft.com/office/2008/07/excelservices/rest&lt;/a&gt; – this is the namespace for the Excel REST data scheme.&lt;/p&gt; &lt;p&gt;Both of these will need to have aliases associated with them (the aliases are not really that important). The setting that should be entered in the “Namespace mapping” field is then:&lt;/p&gt; &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #fdeada; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-background-themetint: 51"&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #fdeada; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-background-themetint: 51" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;This goes in the “Namespace Mappings” field:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #fdeada; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-background-themetint: 51" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;xmlns:a="http://www.w3.org/2005/Atom" xmlns:x="http://schemas.microsoft.com/office/2008/07/excelservices/rest"&lt;/span&gt;&lt;span style="font-family: 'Lucida Console'; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/XPath"&gt;XPath&lt;/a&gt; needs to point to the “fv” element that’s in the XML and so it should be set to:&lt;/p&gt; &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #fdeada; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-background-themetint: 51"&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #fdeada; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-background-themetint: 51" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;This goes in the “XPath Expression” field:&lt;/span&gt;&lt;/p&gt; &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #fdeada; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent6; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-background-themetint: 51" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;&lt;/span&gt;/a:entry/a:content/x:range/x:row/x:c/x:fv&lt;/p&gt;&lt;/div&gt; &lt;p&gt;And that’s pretty much it! Once you hit OK, the dialog will close and you should see the value from the workbook. Here’s text from a word document with fields toggled to see the codes:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_6.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb_2.png" width="404" height="143"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;And here’s the text as it appears when the fields are shown as text:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_8.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb_3.png" width="400" height="113"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The highlighted areas are the values that came from Excel Services. &lt;strong&gt;The cool part is that when the workbook updates and the word document is updated, this data will update as well, showing the new values!&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Now, another nifty aspect of this is that the same mechanism can be used to embed richer data – like HTML. If you will recall, at the bottom of &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx"&gt;this post&lt;/a&gt; I showed how one can access Ranges from Excel and get back HTML fragments. Guess what – Word knows how to embed those as well. Using the same mechanism, we can enter a field and point it to a REST URL returning an HTML fragment. In this case, we do not need the namespace mappings or the XPath expression – just the URL (in this example a URL to a range that looks like a score-card):&lt;/p&gt; &lt;p&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')&lt;/p&gt; &lt;p&gt;The URL resolves to the following HTML:&lt;/p&gt; &lt;div style="overflow: hidden"&gt; &lt;table style="margin-top: -2px; border-collapse: collapse; margin-left: -2px" class="ewr-sheettable ewa-top2 ewa-right2 ewa-bottom2 ewa-left2" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="border-bottom: transparent 1px solid; line-height: 1px; width: 1px; height: 1px; font-size: 1px"&gt; &lt;div class="clp"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="line-height: 1px; width: 72px; height: 1px; font-size: 1px"&gt; &lt;div style="width: 72px" class="clp"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="line-height: 1px; width: 42px; height: 1px; font-size: 1px"&gt; &lt;div style="width: 42px" class="clp"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-bottom: transparent 1px solid; width: 1px"&gt; &lt;div style="height: 24px" class="clp"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left; border-left: #000000 2px solid; background-color: #dce6f1; font: bold 14pt 'Calibri'; color: #000000; vertical-align: bottom; border-top: #000000 2px solid; border-right: #f8696b 1px solid; text-decoration: none" id="ewaCellI4"&gt; &lt;div style="width: 69px; max-height: 24px" class="cv-nwl"&gt;Shaharp:&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: #63be7b 1px solid; text-align: right; background-color: #f8696b; font: bold 14pt 'Calibri'; color: #000000; vertical-align: bottom; border-top: #000000 2px solid; border-right: #000000 2px solid; text-decoration: none" id="ewaCellJ4"&gt; &lt;div style="width: 39px; max-height: 24px" class="cv-nwr"&gt;10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-bottom: transparent 1px solid; width: 1px"&gt; &lt;div style="height: 20px" class="clp"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: #000000 2px solid; text-align: left; border-left: #000000 2px solid; background-color: #dce6f1; font: 11pt 'Calibri'; color: #000000; vertical-align: bottom; border-right: #63be7b 1px solid; text-decoration: none" id="ewaCellI5"&gt; &lt;div style="width: 69px; max-height: 19px" class="cv-nwl"&gt;Average:&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: #000000 2px solid; text-align: right; background-color: #63be7b; font: 11pt 'Calibri'; color: #000000; vertical-align: bottom; border-right: #000000 2px solid; text-decoration: none" id="ewaCellJ5"&gt; &lt;div style="width: 39px; max-height: 19px" class="cv-nwr"&gt;1.3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p&gt;When embedded in the workbook by using the IncludeText field, this is what it looks like:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_10.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb_4.png" width="404" height="189"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;The same thing applies as before – if the data of the workbook changes and the scorecard data and formatting changes, the next time the Word document will be updated, this text and formatting will also be updated.&lt;/p&gt; &lt;p&gt;Finally, if you look just above the IncludeText field, you will see an IncludePicture field – using that allows you to embed live images from Excel Services within the workbook – in this example, the URL we will embed is the chart that shows the progress made on the bugs and the goals:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_12.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/HowtoseamlesslyembeddatafromExcelService_123E9/image_thumb_5.png" width="404" height="403"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;To summarize – as you can see, you can create richer and self-updating documents in word by using fields that connect to Excel data and bring back plain text (the first example with the Atom) or formatted text (the second example with the HTML fragment) or charts (last example). These can be updated at will just like any other field in Excel and guarantee that your document will contain data that is up to date and is synchronized with the source – no more checking to see if the data was copied properly etc.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917129" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>Bringing it all back home – using advanced REST functionality with the Excel Services Gadget</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/06/bringing-it-all-back-home-using-advanced-rest-functionality-with-the-excel-services-gadget.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/06/bringing-it-all-back-home-using-advanced-rest-functionality-with-the-excel-services-gadget.aspx</id><published>2009-11-06T17:00:00Z</published><updated>2009-11-06T17:00:00Z</updated><content type="html">&lt;p&gt;In the past two weeks I detailed both the new REST functionality in Excel Services as well as the Excel Services Gadget (which will hopefully be available for download soon). In the &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/05/advanced-excel-services-rest-api-capabilities-where-things-get-interesting.aspx"&gt;previous post&lt;/a&gt; I showed how you can use URL parameters to REST URLs to modify the result you get back. In this post, I will show how you can create an incredibly compelling story for users by using both that and the gadget that I &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/03/interoducing-the-excel-services-gadget.aspx"&gt;introduced earlier this week&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;To start, I have a workbook that contains information about my team bug counts. On top of everything else inside that workbook, it also contains a cell where, when an alias (email) is entered, pars of the workbook recalculate to show the bug trend/counts for that specific person:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_2.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_thumb.png" width="404" height="378"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If you click on the image, you will see the cell called “Alias” (the one that currently has “shaharp” inside it). the green table you see contains information specific to the Alias cell (so, if you change the cell to another value, the data will update accordingly). On top of that we also have a table of links in the workbook:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_4.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_thumb_1.png" width="291" height="346"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;For each person there are two links – one under the alias of the person and the other called “Home Site”. Here are the formulas for both:&lt;/p&gt; &lt;p&gt;Under the alias, the formula is: =HYPERLINK("&lt;a href="http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/TeamBugs.xlsx/Model/Charts('PersonalBugs')?Ranges('Alias')=&amp;quot;"&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/TeamBugs.xlsx/Model/Charts('PersonalBugs')?Ranges('Alias')="&lt;/a&gt; &amp;amp; A1, A1)&lt;/p&gt; &lt;p&gt;Under the Home Site the formula is:=HYPERLINK("&lt;a href="http://tsdlt2/PersonalPages/&amp;quot;"&gt;http://tsdlt2/PersonalPages/"&lt;/a&gt; &amp;amp; A1 &amp;amp; ".aspx", "Home Site")&lt;/p&gt; &lt;p&gt;As you can see, the first formula resolves to a hyperlink to a REST URL where the object shown is the same “PersonalBugs” chart but where for each person, a value is set into the “Alias” cell. In this way, a single workbook/chart can serve multiple purposes. Here, we pass in the alias to a cell and then get the chart that corresponds to that person.&lt;/p&gt; &lt;p&gt;Here’s how this works. First, you can see that the link show up in the gadget itself:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_6.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_thumb_2.png" width="187" height="349"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now, remember, there are two links here. The Home Site one is just a run of the mill link and when clicked, will open up in your default browser:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_8.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_thumb_3.png" width="404" height="355"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;As you can see, the link corresponds to an alias which then opens up in the browser according to the formula.&lt;/p&gt; &lt;p&gt;The interesting part is what we can do with the other link though. The gadget recognizes that the link is actually a REST link – and so it decides that it can actually display it as part of the gadget in a flyout:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_10.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/BringingitallbackhomeusingadvancedRESTfu_EE/image_thumb_4.png" width="404" height="249"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once the gadget loses it’s focus, or you click inside it, the flyout will collapse back into the gadget.&lt;/p&gt; &lt;p&gt;And that’s it for this week. This week I tried to show you some interesting ways of using the new Excel Services REST APIs and some of the new and exciting opportunities it gives developers and users. There was a post about the “&lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx"&gt;essentials&lt;/a&gt;” of REST in Excel Services – a kind of “cheat sheet” for all the things REST can do. There were &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/03/interoducing-the-excel-services-gadget.aspx"&gt;two&lt;/a&gt; &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/04/showing-excel-ranges-in-the-excel-services-gadget.aspx"&gt;posts&lt;/a&gt; about the Excel Services Gadget which showed the concept and then a &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/05/advanced-excel-services-rest-api-capabilities-where-things-get-interesting.aspx"&gt;post&lt;/a&gt; that explained the more advanced stuff REST can do by passing parameters into the workbook via the URL. &lt;/p&gt; &lt;p&gt;Next week will show the actual code running behind the gadget. Have a good weekend!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916060" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /><category term="Excel Services Gadget" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services+Gadget/default.aspx" /></entry><entry><title>Advanced Excel Services REST API capabilities – passing parameters to a spreadsheet</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/05/advanced-excel-services-rest-api-capabilities-where-things-get-interesting.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/05/advanced-excel-services-rest-api-capabilities-where-things-get-interesting.aspx</id><published>2009-11-05T17:00:00Z</published><updated>2009-11-05T17:00:00Z</updated><content type="html">&lt;P&gt;So far in the posts discussing Excel Services REST, I showed how easy it was to gain direct access to elements within workbooks. One immediately sees the potential of really releasing the data and the visualization that’s locked within Excel and making it easily available on the web. The really advanced stuff though is a little more subtle! With the Excel Services REST APIs, you can also pass in parameters into the spreadsheet, allowing you not only to leverage the data and the visualization, but also to leverage the &lt;STRONG&gt;logic&lt;/STRONG&gt; that’s behind them. These things are always explained best with an example. Take a workbook I used in a talk at the &lt;A href="http://www.mssharepointconference.com/Pages/default.aspx" mce_href="http://www.mssharepointconference.com/Pages/default.aspx"&gt;SharePoint Conference 2009&lt;/A&gt; – a workbook that calculates mortality chances per age group, adjusted to life-style. So, for example, if you smoke 5 packets a day, guess what – you have more chances of dying at 50 than if you didn’t.&lt;/P&gt;
&lt;P&gt;Here’s part of the workbook:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb.png" width=404 height=366 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The table contains a bunch of parameters (each a named cell) which when changed affect the curve and peak of the chart. The chart shows on the Y axis the chances of death and on the X axis&amp;nbsp; the age for said chance. In this case, when all the parameters are empty (zero), you can see that the peak for the chances is around age 70 with a 30% chance to kick the barrel there. So how do we leverage this? Lets start simple – the URL for the chart is the following (as discussed in the &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx"&gt;first post&lt;/A&gt; I made about REST):&lt;/P&gt;
&lt;P&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/MortalityChances.xlsx/Model/Charts('ChancesChart')&lt;/P&gt;
&lt;P&gt;And when navigated to, simply produces the chart that’s in the workbook:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_4.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_1.png" width=404 height=221 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, lets tell Excel Services to put a value in one of the parameters and recalculate before it returns the actual result – this is done by using the “Ranges” URL parameter:&lt;/P&gt;
&lt;P&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/MortalityChances.xlsx/Model/Charts('ChancesChart')?&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Ranges(‘Packets’)=10&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When used in this manner, the following steps will take place:&lt;/P&gt;
&lt;P&gt;1. Excel Services will find the cell named “Packets” and place the value 10 in it.&lt;BR&gt;2. It will make sure a recalc takes place so that the workbook will represent the actual changes requested.&lt;BR&gt;3. The chart image will be sent back to the user.&lt;/P&gt;
&lt;P&gt;Here’s the result:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_6.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_2.png" width=404 height=226 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As you can see, the peak shifted and now the estimate peaks at 30% still, but with the age being about 60! You can of course add more parameters – lets say the person also has a history of heart conditions. We can simply pass another parameter:&lt;/P&gt;
&lt;P&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/MortalityChances.xlsx/Model/Charts('ChancesChart')?&lt;FONT color=#000000&gt;Ranges(‘Packets’)=10&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&amp;amp;Ranges(‘FamHeart’)=1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;And the effect on the chart:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_8.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_3.png" width=404 height=220 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/AdvancedExcelServicesRESTAPIcapabilities_BC71/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can easily see how this mechanism can be leveraged to get much more out of your workbook! Not only can you get all the data and all the visual capabilities of the workbook, but REST also lets the logic shine through and be leveraged by the user/developer. And this of course works with all the other REST requests that are supported by Excel Services – it is not limited to charts.&lt;/P&gt;
&lt;P&gt;In the next post, I will show how the Gadget can be used in conjunction to other REST links (including REST links with parameters) to allow for even better reuse of Excel workbook data and logic.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915938" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>Showing Excel ranges in the Excel Services Gadget</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/04/showing-excel-ranges-in-the-excel-services-gadget.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/04/showing-excel-ranges-in-the-excel-services-gadget.aspx</id><published>2009-11-04T10:27:00Z</published><updated>2009-11-04T10:27:00Z</updated><content type="html">&lt;p&gt;The &lt;a href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/03/interoducing-the-excel-services-gadget.aspx"&gt;last post&lt;/a&gt; I wrote, I showed the Excel Services gadget and how it can be a great tool for bringing your Excel data right to the desktop. In this short post, I will show some of the other capabilities it has – namely, the ability to show ranges on top of charts.&lt;/p&gt; &lt;p&gt;In the settings page of the gadget, you have the ability to choose not only charts, but also ranges, tables and PivotTables. The workbook I have contains a simple color coded “score card” which contains the number of bugs I have and the average number – I can choose that score-card to show when the gadget is minimized – in some cases, it can be a better indication than the chart shown in the last post. The actual workbook that contains the range is relatively simple – here’s what that specific range looks like:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_4.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_thumb_1.png" width="274" height="209"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Here’s what the settings page looks like – notice that I still want to see the chart showing my stats when the gadget is maximized:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_2.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_thumb.png" width="319" height="404"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once you hit OK and the gadget refreshes, you will see the score card showing in the gadget itself:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_6.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/image_thumb_2.png" width="181" height="156"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And just like in the previous post – clicking on the “Maximize” button will show the chart.&lt;/p&gt; &lt;p&gt;Here’s a short video that shows exactly how this works and what it looks like:&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ad526548-c0e2-4189-b735-525c72ea8c43" class="wlWriterEditableSmartContent"&gt;&lt;div id="9a71a919-3b82-4551-9359-08c3ca6664d3" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=CEgqCWChdH8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ShowingExcelrangesintheExcelServicesGadg_1AA3/video5d7287ee5441.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('9a71a919-3b82-4551-9359-08c3ca6664d3'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/CEgqCWChdH8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/CEgqCWChdH8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Enjoy!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915828" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="Win7" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Win7/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /><category term="Excel Services Gadget" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services+Gadget/default.aspx" /></entry><entry><title>Introducing the Excel Services Windows 7 Gadget</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/03/interoducing-the-excel-services-gadget.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/03/interoducing-the-excel-services-gadget.aspx</id><published>2009-11-03T17:00:00Z</published><updated>2009-11-03T17:00:00Z</updated><content type="html">&lt;P&gt;The &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx"&gt;past few posts&lt;/A&gt; have shown some of the basic REST functionality you can expect to get from the new Excel Services that will ship as part of SharePoint 2010. Before going into some of the more advanced features (well.. feature) of Excel Services REST, I thought I would show you a Windows Gadget we implemented for internal use. I will make the source code available either through the MSDN Code Library or through this blog in the very near future.&lt;/P&gt;
&lt;P&gt;Now, gadgets are not hard to write, but they do require some knowledge of HTML and JavaScript. This Gadget is an absolutely great tool for people who have any sort of spreadsheet that contains any type of data that periodically changes and which is usually used as a sort of tracking application – instead of having to write the gadget yourself, you can just use the Excel workbook. You can think of any type of workbook – from the workbook that tracks your portfolio, to the one that displays information about your warehouse stock, to the one that tracks your project progress. This data is usually “locked” inside spreadsheets and one needs to manually open the workbook and actively look in. This gadget opens up an opportunity to use virtually any piece of information that resides within such workbooks and make it easily accessible right on your desktop – the gadget will make sure to periodically update the data so that with a simple glance, you can see exactly what’s going on!&lt;/P&gt;
&lt;P&gt;Once installed, you add the gadget just like you would any other – run the “Desktop Gadget Gallery” in Windows 7 and double-click the Excel icon:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_4.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_1.png" width=404 height=234 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Once added to the desktop, you need to properly configure your gadget to show whatever information you want. In this example, we will show information about bug counts. For starters, you click the little wrench icon – that will get you to the settings screen:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_6.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_2.png" width=343 height=404 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Next, you type the name of the URL for the workbook in the “Workbook” field and hit Refresh. The Gadget will go and use &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx"&gt;REST discovery&lt;/A&gt; to figure out what elements exist in the workbook:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_8.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_3.png" width=352 height=404 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As you can see, the gadget lets you choose from any of the entities available in the workbook. For now, lets choose the “PersonalBugs” – it is what I like seeing on my desktop, so I can closely monitor my status. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_14.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_14.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_6.png" width=177 height=180 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As you can see, the chart is not really designed to be used in such a small space – clicking on the little arrow will “undock” the gadget (a term inherited from Vista) and will show the chart at full size:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_16.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_16.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_7.png" width=404 height=296 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, this looks much better. It can be even better though – if you noticed, in the first screenshot of the “Settings” screen, there are two combo boxes – one for the actual object you want to see and the other for the thumbnail. The nice thing is that you can set up the gadget to show you one element when it’s “minimized” and one when it’s “maximized”. In this example, we conveniently have a chart called “MiniPersonalChart” which contains the chart in a smaller format. Here is how you set the two objects up in the gadget:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_18.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_18.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_8.png" width=333 height=404 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, when the gadget is “minimized”, it will show the chart that’s better suited for smaller space (it has no header, legend or axis):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_20.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_20.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_9.png" width=154 height=188 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/InteroducingtheExcelServicesGadget_14BD/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;That’s it for this post! Next post will show how the gadget can show not only charts, but also show ranges!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915821" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="Win7" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Win7/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /><category term="Excel Services Gadget" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services+Gadget/default.aspx" /></entry><entry><title>Excel Services REST APIs – the basics</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx</id><published>2009-11-02T17:00:00Z</published><updated>2009-11-02T17:00:00Z</updated><content type="html">&lt;P&gt;Last week I posted a number of pieces about the various ways the new Excel Services REST APIs allows developers to leverage data and elements from within workbooks by giving direct URLs to them. This post contains details about the available capabilities of the REST APIs – essentially a list of all the entities that are available for deep-linking.&lt;/P&gt;
&lt;P&gt;All the relative URLs presented are based off the base REST URL which I explained in the very first post – the base URL essentially follows the following template:&lt;/P&gt;
&lt;P&gt;http://[server]/_vti_bin/ExcelRest.aspx/[DocLib]/[File.Xlsx]&lt;/P&gt;
&lt;P&gt;The following table shows all the accessible resources off this base URL:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=648&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 150px"&gt;
&lt;COL style="WIDTH: 80px"&gt;
&lt;COL style="WIDTH: 100px"&gt;
&lt;COL style="WIDTH: 150px"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #4f81bd; HEIGHT: 15pt; COLOR: white; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 700; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" class=xl64 height=20 class="xl64"&gt;Resource&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #4f81bd; COLOR: white; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 700; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" class=xl64 class="xl64"&gt;Format&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #4f81bd; COLOR: white; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 700; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" class=xl64 width=202 class="xl64"&gt;Example&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #4f81bd; COLOR: white; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 700; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" class=xl64 width=214 class="xl64"&gt;Notes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl63 height=40 class="xl63"&gt;/Model&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl63 class="xl63"&gt;atom (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl63 width=202 class="xl63"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl63 width=214 class="xl63"&gt;This returns an ATOM feed with the resources supported by the workbook (Ranges, Charts, PivotTables and Tables).&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 15pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=20 class="xl64"&gt;/Model&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;workbook&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model?$format=workbook&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;The binary workbook (the xlsx/xlsb/xlsm) itself.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/Ranges&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;atom (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/Ranges&lt;BR&gt;/Model/Ranges?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An ATOM feed listing all the named ranges in the workbook.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=40 class="xl64"&gt;/Model/Ranges('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;html (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model/Ranges('MyRange')&lt;BR&gt;/Model/RangeS('MyRange')?$format=html&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;An HTML fragment for the requested range.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/Ranges('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/Ranges('MyRange')?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An ATOM entry containing an XML representation of the data within the range.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=40 class="xl64"&gt;/Model/Charts&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;atom (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model/Charts&lt;BR&gt;/Model/Charts?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;An ATOM feed listing all the charts in the workbook.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/Charts('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;image (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/Charts('MyChart')&lt;BR&gt;/Model/Charts('MyChart')?$format=image&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An image (PNG form) of the chart.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=40 class="xl64"&gt;/Model/Tables&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;atom (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model/Tables&lt;BR&gt;/Model/Tables?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;An ATOM feed listing all the available tables in the workbook.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/Tables('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;html (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/Tables('MyTable')&lt;BR&gt;/Model/Tables('MyTable')?$format=html&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An HTML fragment for the requested table.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=40 class="xl64"&gt;/Model/Tables('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model/Tables('MyTable')?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;An ATOM entry containing an XML representation of the data within the table.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/PivotTables&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;atom (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/PivotTables&lt;BR&gt;/Model/PivotTables?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An ATOM feed listing all the available PivotTables in the workbook.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 height=40 class="xl64"&gt;/Model/PivotTables('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 class="xl64"&gt;html (default)&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=202 class="xl64"&gt;/Model/PivotTables('MyPT')&lt;BR&gt;/Model/PivotTables('MyPT)?$format=html&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" class=xl64 width=214 class="xl64"&gt;An HTML fragment for the requested PivotTable.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 30pt" height=40&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: #95b3d7 0.5pt solid; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; HEIGHT: 30pt; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 height=40 class="xl64"&gt;/Model/PivotTables('[Name]')&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 class="xl64"&gt;atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: medium none; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=202 class="xl64"&gt;/Model/PivotTables('MyPT')?$format=atom&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #95b3d7 0.5pt solid; BORDER-LEFT: medium none; FONT-FAMILY: calibri; BACKGROUND: #dce6f1; COLOR: black; FONT-SIZE: 11pt; BORDER-TOP: #95b3d7 0.5pt solid; FONT-WEIGHT: 400; BORDER-RIGHT: #95b3d7 0.5pt solid; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #dce6f1 none" class=xl64 width=214 class="xl64"&gt;An ATOM entry containing an XML representation of the data within the PivotTables&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;As you can see, there are a number of elements inside workbooks that are addressable via a URL. For example, the table I pasted in here actually resides within Excel Services. This means that it is addressable via the /Model/Tables(‘[Name]’) rows. The following example shows this very same table accessed in IE by a direct link:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ExcelServicesRESTAPIsthebasics_556/image_4.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ExcelServicesRESTAPIsthebasics_556/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ExcelServicesRESTAPIsthebasics_556/image_thumb_1.png" width=480 height=255 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/ExcelServicesRESTAPIsthebasics_556/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The name of the table is “Table1” – because the HTML format is the default one when accessing tables, that means that one does not need to specify it to get HTML back.&lt;/P&gt;
&lt;P&gt;That’s it for now. The &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx"&gt;next post&lt;/A&gt; will show you a solution written using REST which will allow end users to put refreshable data from Excel Services on their desktop via a relatively simple Windows 7 Gadget.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914557" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>What’s coming to Cum Grano Salis this week..</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/what-s-coming-to-cum-grano-salis-this-week.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/what-s-coming-to-cum-grano-salis-this-week.aspx</id><published>2009-11-02T16:00:00Z</published><updated>2009-11-02T16:00:00Z</updated><content type="html">&lt;p&gt;Just thought I’d drop a quick note as to what to expect to see this week..&lt;/p&gt; &lt;p&gt;Today there will be a post about the basics of REST – essentially a reference manual to all the basic capabilities of the API.&lt;/p&gt; &lt;p&gt;After that, there will be two posts about the Excel Services Gadget I showed in SharePoint conference 2009.&lt;/p&gt; &lt;p&gt;Towards the end of the week there will be one post about the advanced capabilities REST has and then, the final post of the week will tie it all together and show how to leverage the heck out of your workbooks by using the Excel Services Gadget.&lt;/p&gt; &lt;p&gt;Most of the posts next week (week of the 9th) will show the inner working of the Excel Services Gadget.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915919" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>Reason #4871 why I hate DHTML</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/31/reason-4871-why-i-hate-dhtml.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/31/reason-4871-why-i-hate-dhtml.aspx</id><published>2009-11-01T06:36:00Z</published><updated>2009-11-01T06:36:00Z</updated><content type="html">&lt;P&gt;Margins. In script.&lt;/P&gt;
&lt;P&gt;To set? Use element.style.&lt;A href="http://msdn.microsoft.com/en-us/library/ms530808(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms530808(VS.85).aspx"&gt;marginTop&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;To get in runtime? Use element.&lt;A href="http://msdn.microsoft.com/en-us/library/ms534685(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms534685(VS.85).aspx"&gt;topMargin&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Arghhhhhhh! It's like DHTML is forcefuly trying to make me hate it.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915800" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Geekdom" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Geekdom/default.aspx" /></entry><entry><title>Getting ranges via Excel Services REST as well as Charts and Discovery</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx</id><published>2009-10-30T16:00:00Z</published><updated>2009-10-30T16:00:00Z</updated><content type="html">&lt;P&gt;The &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx"&gt;previous post&lt;/A&gt; (and the &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx"&gt;one before&lt;/A&gt;) showed how the Excel Services REST API allows developers to discover information about a workbook as well as get back images of live charts from an Excel Workbook.&lt;/P&gt;
&lt;P&gt;It is also quite possible to get other types of data – specifically ranges from the spreadsheet. Now, Excel Services supports two mechanisms for getting ranges through REST. The first is used mainly to allow applications to get to the raw-data of the workbook (i.e. Raw numbers/values from a sheet) and the other is to get HTML fragments for use inside a browser. In future posts, I will show how you can leverage these elements inside a page to create a seamless experience, but for now, I will just show the simplest use for both.&lt;/P&gt;
&lt;P&gt;I will use the same workbook shown in the previous post – the one containing bug status information. In this case however, we will look at a different element in there – a named range called “PersonalScoreCard”. Using the discovery mechanism described in the previous post, if you go to the “Ranges” atom feed on the server, you land on a page that shows all the named ranges currently in the workbook (there’s only the one in this example):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_4.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_1.png" width=404 height=268 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Clicking on the name of the range will navigate to this URL: http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')?$format=atom&lt;/P&gt;
&lt;P&gt;Inside IE, the result looks like an error though:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_6.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_2.png" width=404 height=268 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;If you look closely, you will see that it’s just that IE does not know how to show a single-entry atom feed item. Viewing the source of the document will show the XML the feed item contains:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #f2f2f2; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&amp;lt;entry xml:base="http://excel.live.com/REST" xmlns:x="http://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;title type="text"&amp;gt;PersonalScoreCard&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;id&amp;gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')&amp;lt;/id&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;updated&amp;gt;2009-10-29T00:43:26Z&amp;lt;/updated&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;name /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;link rel="self" href="http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')?$format=atom" mce_href="http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')?$format=atom" title="PersonalScoreCard" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;category term="ExcelServices.Range" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;content type="application/xml"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:range name="PersonalScoreCard"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:fv&amp;gt;Shaharp:&amp;lt;/x:fv&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:v&amp;gt;10&amp;lt;/x:v&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:fv&amp;gt;10&amp;lt;/x:fv&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:fv&amp;gt;Average:&amp;lt;/x:fv&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:v&amp;gt;1.3333333333333333&amp;lt;/x:v&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;x:fv&amp;gt;1.333333333&amp;lt;/x:fv&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:c&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:row&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/x:range&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/content&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&amp;lt;/entry&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you can see, the feed item contains XML representing the data inside the range. Here’s the quick and dirty on the xml elements (though most of them are pretty self explanatory):&lt;/P&gt;
&lt;P&gt;&amp;lt;range&amp;gt; : The container of the returned range.&lt;/P&gt;
&lt;P&gt;&amp;lt;row&amp;gt; : Each row in the range that was requested is represented by one of these.&lt;/P&gt;
&lt;P&gt;&amp;lt;c&amp;gt; : Each cell in a row is represented by this.&lt;/P&gt;
&lt;P&gt;&amp;lt;fv&amp;gt; : Formatted Value – this is the value as it is formatted by Excel. If the value is of type string in the workbook, this element will be the only one under &amp;lt;c&amp;gt;. &lt;/P&gt;
&lt;P&gt;&amp;lt;v&amp;gt; : In the case where the value in the cell is not a string but a number, the Value element will contain that information.&lt;/P&gt;
&lt;P&gt;In this way it’s very easy to get data out of an Excel range and use it in your application.&lt;/P&gt;
&lt;P&gt;But that’s not all. If you will notice, the final part of the URL contains a parameter called $format which is set to Atom. This parameter can also take the value of html – when that’s the case, the URL will return an HTML fragment rather than an atom feed:&lt;/P&gt;
&lt;P&gt;http://tsdlt2/_vti_bin/ExcelRest.aspx/Docs/Bugs.xlsx/Model/Ranges('PersonalScoreCard')?$format=&lt;FONT color=#ff0000&gt;html&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If you were to change the URL in IE, here’s the result:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_10.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_10.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_4.png" width=404 height=184 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/GettingrangesviaExcelServicesRESTaswella_1207C/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This HTML can either be directly consumed in an IFRAME, or used in JavaScript to create a more seamless experience (I will show examples of this in later posts).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/11/02/excel-services-rest-apis-the-basics.aspx"&gt;Next post&lt;/A&gt; will recap the basics of the Excel Services REST API and what resources are available through it.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914486" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>Discovery via the Excel Services REST APIs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx</id><published>2009-10-29T16:00:00Z</published><updated>2009-10-29T16:00:00Z</updated><content type="html">&lt;P&gt;In my &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx"&gt;previous post&lt;/A&gt;, I showed what embedding a chart from Excel Services inside a blog looks like. In this post, we will take a step back and explore the discovery mechanisms built into the Excel Services REST APIs.&lt;/P&gt;
&lt;P&gt;Discovery allows developers and users to explore the content of the workbook either manually or programmatically by supplying &lt;A href="http://en.wikipedia.org/wiki/Atom_(standard)" mce_href="http://en.wikipedia.org/wiki/Atom_(standard)"&gt;ATOM feeds&lt;/A&gt; that contain information the elements that reside a specific workbook. Starting out with discovery is pretty easy. If you will recall, the link we used to access the chart in the previous post looked a like this:&lt;/P&gt;
&lt;P&gt;http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared documents/Bugs.xlsx/Model/Charts(‘PersonalBugs’)&lt;/P&gt;
&lt;P&gt;To start seeing how discovery works, simply chop off all that Charts business and you are left with:&lt;/P&gt;
&lt;P&gt;http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared documents/Bugs.xlsx/Model&lt;/P&gt;
&lt;P&gt;This is your anchor for starting discovery. Pointing your browser to this URL will show up the four resource collections we currently support:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb.png" width=580 height=328 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You will notice that you get access to four resource collections: Ranges, Charts, Tables and PivotTables.&lt;/P&gt;
&lt;P&gt;Clicking on the Charts link will bring to yet another ATOM feed – this one listing all the charts available in the workbook:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb_1.png" width=578 height=327 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As you can see, there are two charts on the workbook – one called “PersonalBugs” (which was used in the previous post) and one called “TeamBugs”. Clicking on “TeamBugs” will navigate to the actual chart URL:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb_2.png" width=581 height=329 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/DiscoveryviatheExcelServicesRESTAPIs_13A9/image_thumb_2.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Using the ATOM feed provided by the REST APIs allows for an incredibly easy way of getting to the data you care about. The flip side of this is that since these are just ATOM feeds, they are readable by machine as well! So, in the previous screenshot, if you ask FireFox to give you the source of the document, you get a bunch of XML:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #f2f2f2; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&amp;gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;lt;feed xmlns="http://www.w3.org/2005/Atom" xmlns:x="http://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;title type="text"&amp;gt;Charts&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;id&amp;gt;http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts&amp;lt;/id&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;updated&amp;gt;2009-10-28T08:15:13Z&amp;lt;/updated&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;name /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;link rel="self" href="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts?$format=atom" mce_href="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts?$format=atom" title="Charts" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;entry&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;category term="ExcelServices.Chart" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;title&amp;gt;PersonalBugs&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;id&amp;gt;http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts('PersonalBugs')&amp;lt;/id&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;updated&amp;gt;2009-10-28T08:15:13Z&amp;lt;/updated&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;name /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/author&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;link rel="alternate" title="PersonalBugs" href="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts('PersonalBugs')?$format=image" mce_href="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts('PersonalBugs')?$format=image" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;content type="image/png" src="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts('PersonalBugs')?$format=image" mce_src="http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared%20documents/Bugs.xlsx/Model/Charts('PersonalBugs')?$format=image" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; BACKGROUND: #f2f2f2; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/entry&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;…&amp;nbsp; [Removed the rest of the feed]&lt;/DIV&gt;
&lt;P&gt;As you can see, the feed contains easily traversable elements that will allow any piece of code to go through and discover what elements exist in the workbook – each ATOM entry corresponds to a Chart that can be accessed.&lt;/P&gt;
&lt;P&gt;This same mechanism applies to discovering PivotTables, Tables and Ranges. In the &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/30/getting-ranges-via-excel-services-rest-as-well-as-charts-and-discovery.aspx"&gt;next post&lt;/A&gt;, I will show some of the capabilities revolving around those.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913967" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>So what does REST on Excel Services look like???</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx</id><published>2009-10-28T16:00:00Z</published><updated>2009-10-28T16:00:00Z</updated><content type="html">&lt;P&gt;In &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx"&gt;my first post about Excel Services and REST&lt;/A&gt;, I showed how to construct a simple REST URL pointing directly to a PNG in a workbook. This post was supposed to be about the discovery built into the Excel Services REST API. However, I got a couple of questions about what my previous post actually looks like visually when used inside SharePoint 2010 and so I decided to post about that today instead. People like shiny screenshots.. :)&lt;/P&gt;
&lt;P&gt;In the previous post, I gave the following example of a REST URL:&lt;/P&gt;
&lt;P&gt;http://server/_vti_bin/ExcelRest.aspx/Shared Documents/Bugs.xlsx/Model/Charts(‘PersonalBugChart’) 
&lt;P&gt;In this post, I will show how a similar URL is used to post a chart about my alleged bug status into a SharePoint blog and have the chart be tied directly to the Excel file in which it resides. 
&lt;P&gt;First off – here’s what the chart looks like in Excel: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_1.png" width=427 height=249 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_1.png"&gt;&lt;/A&gt; 
&lt;P&gt;If you click the image you will see that the chart is called “PersonalBugs”. The actual location of the file is at “http://tssrva/sites/sp2009/shared documents/bugs.xlsx”. That means that the link to the chart inside Excel would be: 
&lt;P&gt;http://tssrva/_vti_bin/ExcelRest.aspx/sites/sp2009/shared documents/Bugs.xlsx/Model/Charts(‘PersonalBugs’) 
&lt;P&gt;The next step would be to create a blog post in SharePoint – when creating the blog entry, you can choose the “Insert” tab from the ribbon and then choose “From Address”: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_2.png" width=396 height=334 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_2.png"&gt;&lt;/A&gt; 
&lt;P&gt;Once you click address, all you need to do is put in the URL to the chart: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_3.png" width=244 height=127 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_3.png"&gt;&lt;/A&gt; 
&lt;P&gt;Once you hit OK, you will immediately see the chart appear within the blog post editor: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_10.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_4.png" width=388 height=284 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_4.png"&gt;&lt;/A&gt; 
&lt;P&gt;Hitting the Submit button will post the blog entry: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_12.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_5.png" width=379 height=299 mce_src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/SowhatdoesRESTonExcelServiceslooklike_DF5/image_thumb_5.png"&gt;&lt;/A&gt; 
&lt;P&gt;The real neat part then becomes that as the workbook changes (due to external data being refreshed, the spreadsheet itself being modified and saved etc), everybody will see the changes directly on the blog the next time they come in! 
&lt;P&gt;I hope the shiny screenshots made everything clearer. 
&lt;P&gt;Next up: &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/29/discovery-via-the-excel-services-rest-apis.aspx"&gt;Discovery&lt;/A&gt;!! &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913954" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="Excel" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>Welcome to the new Excel Services!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/27/welcome-to-the-new-excel-services.aspx</id><published>2009-10-27T16:00:00Z</published><updated>2009-10-27T16:00:00Z</updated><content type="html">&lt;P&gt;Now that Microsoft SharePoint Conference 2009 is done, I have some more time to start posting about all the nice things we have done with SharePoint 2010 – especially with Excel Services. In the coming months, I will post about Excel Services, concentrating on some of the new capabilities we enabled via our new extensibility mechanisms.&lt;/P&gt;
&lt;P&gt;Since the new &lt;A href="http://en.wikipedia.org/wiki/Representational_State_Transfer" mce_href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/A&gt; capabilities we built into Excel Services are close to my heart, I will start discussing them first. &lt;/P&gt;
&lt;P&gt;Now, if you know what REST is, you will probably aching to comment that what I am going to discuss is not really REST. There are quite a few parts missing and some things that may not be exactly up to the “standard” (as much as it is one, which is not much). If it’s easier for you, you can also call it “URL facilitated access to spreadsheet component elements”. I find REST quicker to say.&lt;/P&gt;
&lt;P&gt;The new API allows you to access parts of the workbook directly through a URL. The first part of the URL is a representation of the workbook location. The second part is the path to the requested element inside the workbook. In practice, there’s also a “marker” which is our entrypoint (an aspx page). &lt;/P&gt;
&lt;P&gt;To start off with a simple example, say there’s a workbook called bugs.xlsx which lives in a document library called “Shared Documents”. Say that workbook contains a chart called “PersonalBugChart”. You can get direct access to the chart via a simple URL:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT color=#ff0000&gt;http://server/_vti_bin/ExcelRest.aspx&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;/Shared Documents/Bugs.xlsx&lt;/FONT&gt;&lt;FONT color=#008000&gt;/Model/Charts(‘PersonalBugChart’)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Each Excel Services REST URL is built out of three parts:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Marker path&lt;/STRONG&gt;&lt;/FONT&gt;: That’s the “http://server/_vti_bin/ExcelRest.aspx”. To access REST you always need to preface it with this.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;STRONG&gt;File path&lt;/STRONG&gt;&lt;/FONT&gt;: That’s the “/Shared Documents/Bugs.xlsx” part. This is the file that contains the element you are interested in.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;STRONG&gt;Element path&lt;/STRONG&gt;&lt;/FONT&gt;: That’s “/Model/Charts(‘PersonalBugChart’)” part. This is the path inside the workbook to the element you request.&lt;/P&gt;
&lt;P&gt;That’s it. The result of this URL is a PNG stream which would be the chart that is named PersonalBugChart. When the workbook updates, the REST path will return the new chart – this is a completely live URL. Placing this URL inside an img tag on a page will place the image on the page:&lt;/P&gt;
&lt;P&gt;&amp;lt;img src=”http://server/_vti_bin/ExcelRest.aspx/Shared Documents/Bugs.xlsx/Model/Charts(‘PersonalBugChart’)”&amp;gt;&lt;/P&gt;
&lt;P&gt;If you have SharePoint 2010 Enterprise, try it with your own Excel workbooks! It’s as easy as that! Change the chart type, the contents, anything, and the next time the chart is requested, you will see the new content.&lt;/P&gt;
&lt;P&gt;In the &lt;A href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx" mce_href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/28/so-what-does-rest-on-excel-services-look-like.aspx"&gt;next post&lt;/A&gt;, we will discuss how you can access ranges both as data (via XML) and as HTML fragments.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913344" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development/default.aspx" /><category term="Excel Services" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Excel+Services/default.aspx" /><category term="REST" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/REST/default.aspx" /></entry><entry><title>UlsViewer released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/10/13/ulsviewer-released.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/10/13/ulsviewer-released.aspx</id><published>2009-10-14T04:00:00Z</published><updated>2009-10-14T04:00:00Z</updated><content type="html">&lt;p&gt;The folks in Office Operations released the Uls Viewer tool – it allows users of SharePoint to easily view and analyze ULS logs produced by the system (though not initially designed for user consumption, people seem to have been using the logs pretty much since we shipped). This also allows users of Excel Services to gain some insight as to what’s going on inside the product as it’s running.&lt;/p&gt; &lt;p&gt;&lt;a title="http://code.msdn.microsoft.com/ULSViewer" href="http://code.msdn.microsoft.com/ULSViewer"&gt;http://code.msdn.microsoft.com/ULSViewer&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This is a fun moment for me – the tool was originally written by my team as we were tired of using [insert favorite text editor here]&amp;nbsp; to try and understand the logs we produced. Being the new kid on the block in Office 12, we were using the ULS with a gusto (I think we are probably still the team that use logging the most in SharePoint) and we liked the fact that we could track everything the server was doing. At some point it became too much, so we sat down and wrote a tool that would allow us to view, dice, slice, analyze and otherwise BI the heck out of our logs. &lt;/p&gt; &lt;p&gt;During O14, the tool was pretty much taken over by the ULS folks who have fixed many of the bugs we had in the original tool. On top of that, they thought it would be useful for users to have and asked us if we were okay with releasing it publicly. Once all the profanity was removed from the tool and some of the bugs squashed (not all of them, as you will notice in the Filter dialog box and other places), the tool was apparently deemed worthy of “shipping” under the MSDN code library.&lt;/p&gt; &lt;p&gt;Both my team and the ULS team are looking to fix more bugs and make the tool more efficient memory-wise – if you have any other suggestions, please be sure to let us know through the tool page above, or by commenting on this blog.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9906401" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Geekdom" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Geekdom/default.aspx" /></entry><entry><title>Optimizing life – Life in Async</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/07/01/optimizing-life-life-in-async.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/07/01/optimizing-life-life-in-async.aspx</id><published>2009-07-01T20:43:09Z</published><updated>2009-07-01T20:43:09Z</updated><content type="html">&lt;p&gt;I was going to get coffee today at work, minding my own business, when someone from the test-team asked me if the order I was doing things when preparing coffee was intentional. Absentmindedly, I explained the reasoning behind the order of things and how I reached this way of doing things and belatedly realized that I may have gone too far in my explanation – I think it was the look of pity in his eyes that clued me in. &lt;/p&gt; &lt;p&gt;To explain, first you need to understand what our kitchenette looks like and the various steps in making coffee:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/OptimizinglifeLifeinAsync_937/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/OptimizinglifeLifeinAsync_937/image_thumb.png" width="514" height="376"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Here are the various things we are seeing here:&lt;/p&gt; &lt;p&gt;1) Access – that’s where I typically come to the kitchenette from. &lt;br&gt;2) The coffee machine&lt;br&gt;3) Counter&lt;br&gt;4) Cups&lt;br&gt;5) Lids&lt;br&gt;6) Fridge (Where milk is).&lt;/p&gt; &lt;p&gt;Our coffee machines basically give you an Americano – no milk. The way I take my cup’o’joe is to do 12 oz of machine generated coffee (into a 16 oz cup) and fill another 2-3 oz of milk – and then the&amp;nbsp; cup needs to be lidded as well. Of course, there are a number of variations on how to make such a coffee with this layout.&lt;/p&gt; &lt;p&gt;Making Coffee – the naive way:&lt;/p&gt; &lt;p&gt;Step 1: Go to position (4) – grab a cup.&lt;br&gt;Step 2: Go to position (1) – place cup at machine.&lt;br&gt;Step 3: Press buttons - Wait for coffee to be made.&lt;br&gt;Step 4: Take milk from fridge (6)&lt;br&gt;Step 5: Fill cup with milk (possibly at position (3))&lt;br&gt;Step 6: Discard milk carton or, if still full, place back in fridge.&lt;br&gt;Step 7: Go to (5) and grab a lid.&lt;br&gt;Step 8: Place lid on cup.&lt;/p&gt; &lt;p&gt;And we are done. To understand how this can be optimized we first need to figure out how much each part of the coffee making process takes:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Making coffee (the machine phase)&lt;/strong&gt;: ~2 minutes (constant).&lt;br&gt;&lt;strong&gt;Getting milk (from position (1))&lt;/strong&gt;: On average, takes about 20 seconds. Depending on traffic, can easily take as long as 1:00 minutes if there is a lot of traffic and even longer if you consider the possibility of people talking to you while you are making the coffee.&lt;br&gt;&lt;strong&gt;Getting a cup: &lt;/strong&gt;Usually takes about 5 seconds from position 1 – can take longer due to traffic and chat. Rarely takes more than 30 seconds and requires little concentration.&lt;br&gt;&lt;strong&gt;Filling cup with milk:&lt;/strong&gt; Takes about 5 secodns.&lt;br&gt;&lt;strong&gt;Discarding/Returning milk: &lt;/strong&gt;Takes about 10 seconds. Worst case (traffic etc) can take up to a minute.&lt;br&gt;&lt;strong&gt;Grabbing a lid&lt;/strong&gt;: 5 seconds from position (1).&lt;br&gt;&lt;strong&gt;Lidding the cup&lt;/strong&gt;: 5 seconds at position (3).&lt;/p&gt; &lt;p&gt;So.. Translating this into pseudo code, this is what we get:&lt;/p&gt; &lt;p&gt;function NaiveCoffeeMaking()&lt;br&gt;{&lt;br&gt;WalkTo(4);&lt;br&gt;GetCup(); // 10s&lt;br&gt;WalkTo(2);&lt;br&gt;PlaceCupInMachine(); // 1s&lt;br&gt;MakeCoffee(); // 120s&lt;br&gt;GrabCupFromMachine(); // 1s&lt;br&gt;WalkTo(6);&lt;br&gt;GetMilk(); // 20s&lt;br&gt;PourMilk(); // 5s&lt;br&gt;DiscardOrReturnMilk(); // 10s&lt;br&gt;WalkTo(5);&lt;br&gt;GrabLid(); // 5s (probably closer to 3s in this case)&lt;br&gt;WalkTo(3); &lt;br&gt;LidCup(); // 5s&lt;br&gt;}&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Phew.. Okay.. So we have that. Now lets calculate how much time this takes (best case):&lt;strong&gt;&lt;font size="4"&gt;177 seconds!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The thing to consider though is that the machine phase can be asynchronous – that is to say – while the machine is making coffee, the CPU (me) is waiting Idle. The question is, how can we use that to optimize the time? For our pseudo code then, we will now separate MakeCoffee into two functions: BeginMakeCoffee() which essentially means pressing the buttons on the machine and immediately return to the caller and EndMakeCoffee() which completes the operation (and if not done, blocks until done). And so, the most optimized version of how to make coffee is:&lt;/p&gt; &lt;p&gt;function FullyOptimizedCoffeeMaking()&lt;br&gt;{&lt;br&gt;WalkTo(2);&lt;br&gt;BeginMakeCoffee(); // 120s – but returns immediately&lt;br&gt;WalkTo(4);&lt;br&gt;GrabCup(); // 5s&lt;br&gt;WalkTo(6);&lt;br&gt;GetMilk(); // 20s&lt;br&gt;PourMilk(); // 5s&lt;br&gt;DiscardOrReturnMilk(); // 10s&lt;br&gt;WalkTo(5);&lt;br&gt;GrabLid(); // 5s (probably closer to 3s in this case)&lt;br&gt;WalkTo(2);&lt;br&gt;PlaceCupInMachine();&lt;br&gt;EndMakeCoffee(); &lt;br&gt;LidCup(); // 5s&lt;br&gt;}&lt;/p&gt; &lt;p&gt;Notice that when we call BeginMakeCoffee(), we immediately return and continue processing – going through the phases of getting the milk, preparing the cup and only then, when done, placing it in the machine. So, in this case, best case time would be: &lt;strong&gt;&lt;font size="4"&gt;125 seconds&lt;/font&gt;&lt;/strong&gt;. That’s 120 seconds that it takes to make the coffee plus the 5 that it takes to lid the cup. The rest of the time is taken up in parallel to making the coffee.&lt;/p&gt; &lt;p&gt;But there’s a problem! BeginMakeCoffee() and EndMakeCoffee() do not work exactly like a machine async operation. Generally speaking, when you issue an async operation, the sub-system will take care to store the result for you when it’s done and wait patiently for you to call the second part of the operation (EndMakeCoffee) before it returns the result. A coffee machine does not work that way. When the coffee is ready, it’s coming out – whether there’s something to store it or not. That presents some problems for the FullyOptimizedCoffeeMaking() function! What happens if instead of talking about Best case, we were to talk about worst case. The GetCup() can sometimes take 30 seconds. GetMilk can sometimes take 120 seconds. As well as some of the other things that make take longer under high-stress cases. What happens then? Well, what happens is that the coffee starts pouring and there’s nowhere for it to go, so it gets wasted. Sacrilege!!&lt;/p&gt; &lt;p&gt;In essence, we need something that’s both optimized AND safe. Since life does not have convenient temporary memory (where the coffee would have been stored) or sync objects (where the act of pouring the coffee could have been locked and deferred until a cup is to be placed underneath the nozzle), it means we need to work around those limitations:&lt;/p&gt; &lt;p&gt;function OptimizedAndSafeCoffeeMaking()&lt;br&gt;{&lt;br&gt;WalkTo(2);&lt;br&gt;BeginMakeCoffee(); // 120s – but returns immediately&lt;br&gt;WalkTo(4);&lt;br&gt;GrabCup(); // 5s&lt;br&gt;WalkTo(2);&lt;br&gt;PlaceCupInMachine();&lt;br&gt;WalkTo(6);&lt;br&gt;GetMilk(); // 20s&lt;br&gt;WalkTo(2);&lt;br&gt;PourMilk(); // While cup is in the machine – 10s&lt;br&gt;WalkTo(6)&lt;br&gt;DiscardOrReturnMilk(); // 15s&lt;br&gt;WalkTo(5);&lt;br&gt;GrabLid(); // 5s (probably closer to 3s in this case)&lt;br&gt;WalkTo(2);&lt;br&gt;EndMakeCoffee(); &lt;br&gt;LidCup(); // 5s&lt;br&gt;}&lt;/p&gt; &lt;p&gt;The CPU (me) now needs to work more – you will notice that there is more walking around to accommodate the new placement of the cup (it can no longer be carried around – one needs to walk to it to pour the milk and then back to the fridge to discard or put back). The time this now takes is still &lt;strong&gt;&lt;font size="4"&gt;125 seconds&lt;/font&gt;&lt;/strong&gt; - 120s to make the coffee and prepare the cup and another 5s at the end when the cup is lidded. Switching the lines around and doing more leg work though has bought us a lot more safeness.&lt;/p&gt; &lt;p&gt;Note that this is still not perfect – if the 5s it takes to get a cup and place it in the machine would balloon from 5s to 120s, we would be right back in our original position of losing our coffee. However, that is far less likely to happen in this case. If you want to eliminate risk completely, simply switch BeginMakeCoffee() with GrabCup() and PlaceCupInMachine(). You will lose 5 seconds (making the total time 130 seconds), but you are then completely safe.&lt;/p&gt; &lt;p&gt;So that’s what I was trying to explain to the tester when that look came to his face. The thing is, I am sure everyone does this. But people probably do this unconsciously or at least in a less &lt;strike&gt;obsessive compulsive&lt;/strike&gt; analytic manner than a software developer would.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9811528" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Development Related" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Development+Related/default.aspx" /><category term="Geekdom" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Geekdom/default.aspx" /></entry><entry><title>Windows 7 RC – Media Streaming (“Stream” button in Windows Media Player)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cumgranosalis/archive/2009/05/07/windows-7-rc-media-streaming-stream-button-in-windows-media-player.aspx" /><id>http://blogs.msdn.com/cumgranosalis/archive/2009/05/07/windows-7-rc-media-streaming-stream-button-in-windows-media-player.aspx</id><published>2009-05-07T23:28:49Z</published><updated>2009-05-07T23:28:49Z</updated><content type="html">&lt;p&gt;I found out about this feature a bit ago and.. Wow.. I am so impressed. The set-up procedure is a little convoluted, but once you do it, the thing just works.&lt;/p&gt; &lt;p&gt;Here’s the idea: Allow your identity (your Windows Live account, basically) to stream your media accross the interwebs. If my home computer has my entire outdated music library on it, I don’t need to copy the entire thing to my laptops to access it – I just make sure to associate my Windows Login user to my Live account user and voila – I can stream media from my house when I work!&lt;/p&gt; &lt;p&gt;Step by step:&lt;/p&gt; &lt;p&gt;You can associate your live-id to your windows user account by using the control panel, but Windows Media Player gives you a shortcut. In the Stream drop-down, choose “Allow Internet access to home media”:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb.png" width="451" height="322"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Then, you will be presented with a dialog containing the options you have. You should click “Link online ID”:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_1.png" width="520" height="434"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once you click that, WMP will bring you to a window that allows you to add an online ID provider. Click the&amp;nbsp; “Add an online…” button:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_2.png" width="666" height="466"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once clicked, you will be presented with providers. Click the “Windows Live” one – that will again redirect you to a download from Microsoft. Choose the correct architecture (x86 or x64) and download/install the package. Once you did that, going back to the “Link online IDs” dialog will look like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_3.png" width="666" height="466"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You now need to select the “Link online ID” on the WindowsLiveID highlighted item. That will ask you to log into Windows Live with your Live-ID. Once that’s done, the window will again change to show the linked account:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_4.png" width="599" height="217"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If you go back to Windows Media Player, you should choose the”Allow internet access to home media” option on the open dialog box (same as the second image in this post). Once clicked, the dialog should close and you should land back inside Windows Media Player. But now, you will have your home library available to choose from:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_5.png" width="836" height="711"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You can now play your music to your heart conent. Apparently, this also supports streaming of video. The quality seems kind’a random – I have seen it be very good (indistinguishable from the original) and pretty bad. I guess it takes your bandwidth into account:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/cumgranosalis/WindowsLiveWriter/Windows7RCMediaStreamingStreambuttoninWi_B52D/image_thumb_6.png" width="244" height="195"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Enjoy!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9594854" width="1" height="1"&gt;</content><author><name>Shahar</name><uri>http://blogs.msdn.com/members/Shahar.aspx</uri></author><category term="Win7" scheme="http://blogs.msdn.com/cumgranosalis/archive/tags/Win7/default.aspx" /></entry></feed>