Compartir a través de


Obtención de rangos con fuente de Atom y fragmento HTML

Última modificación: miércoles, 14 de abril de 2010

Hace referencia a: SharePoint Server 2010

En este tema se describen dos maneras de obtener acceso a los rangos (fuente Atom y fragmento HTML) mediante la API de REST de Servicios de Excel.

Obtener acceso a los rangos

La API de REST de Servicios de Excel admite dos mecanismos para obtener rangos. El primero se usa principalmente para permitir que las aplicaciones obtengan acceso a los datos sin formato de un libro, es decir, los números o los valores sin formato de una hoja de cálculo. El segundo consiste en obtener fragmentos HTML desde dentro de un explorador.

Como se describe en el tema Detección en la API de REST de Servicios de Excel, la dirección URL de REST para la página de modelo mediante la detección es:

http://<ServerName>/_vti_bin/ExcelRest.aspx/<DocumentLibrary>/<FileName>/model

Por lo tanto, para un libro cuyo nombre de archivo es sampleWorkbook.xlsx que está guardado en http://<NombreDeServidor>/Docs/Documents/sampleWorkbook.xlsx, el URI a la página de modelo es el siguiente:

http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model

Mediante el mecanismo de detección descrito en Detección en la API de REST de Servicios de Excel, al hacer clic en la fuente Atom Rangos en la página de modelo del servidor, (http://<NombreDeServidor>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model), se mostrará una página con todos los rangos con nombre del libro. El archivo sampleWorkbook.xlsx contiene un rango con nombre, SampleNamedRange, como se muestra en la siguiente captura de pantalla:

Nota importanteImportante

También puede especificar rangos arbitrarios y no solo los rangos devueltos por la detección. Los dos puntos ":" deben reemplazarse por "|". Por ejemplo, use "A1|G5" en lugar de "A1:G5".

Nota

Los caracteres como "?" y "#" no se admiten. Para hacer referencia correctamente a nombres de hoja que contienen caracteres especiales, la instrucción básica consiste en "ver lo que hace el cliente Excel" para lograr que una fórmula haga referencia a una hoja con caracteres especiales y seguir ese ejemplo.

Detección de rangos con nombre REST de Servicios de Excel

Detección de rangos con nombre REST de Servicios de Excel

Obtener acceso a los rangos mediante una fuente Atom

Al hacer clic en SampleNamedRange en la página de detección de rangos, navegará a la siguiente dirección URL:

http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=atom

Tenga en cuenta que, en Internet Explorer, la página resultante parecerá un error, como se muestra en la siguiente captura de pantalla.

Detección de rangos REST de Servicios de Excel mediante Atom

Detección de rangos REST de Servicios de Excel mediante Atom

Internet Explorer no puede mostrar un elemento de fuente Atom de entrada única. Pero la visualización del origen de la página muestra el XML que contiene el elemento de fuente:

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns:x="https://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title type="text">SampleNamedRange</title>
  <id>https://ServerName/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')</id>
  <updated>2010-01-20T21:28:10Z</updated>
  <author>
    <name />
  </author>
  <link rel="self" href="https://ServerName/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=atom" title="SampleNamedRange" />
  <category term="ExcelServices.Range" scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <x:range name="SampleNamedRange">
      <x:row>
        <x:c>
          <x:fv>Performance</x:fv>
        </x:c>
        <x:c>
          <x:v>26</x:v>
          <x:fv>26</x:fv>
        </x:c>
        <x:c />
      </x:row>
      <x:row>
        <x:c>
          <x:fv>Employment</x:fv>
        </x:c>
        <x:c>
          <x:v>42</x:v>
          <x:fv>42</x:fv>
        </x:c>
        <x:c />
      </x:row>
      <x:row>
        <x:c>
          <x:fv>Earnings And Job Quality</x:fv>
        </x:c>
        <x:c>
          <x:v>22</x:v>
          <x:fv>22</x:fv>
        </x:c>
        <x:c />
      </x:row>
    ... XML truncated for brevity. 
      <x:row>
        <x:c>
          <x:fv>Innovation Assets</x:fv>
        </x:c>
        <x:c>
          <x:v>43</x:v>
          <x:fv>43</x:fv>
        </x:c>
        <x:c />
      </x:row>
      <x:row>
        <x:c />
        <x:c>
          <x:fv>State</x:fv>
        </x:c>
        <x:c />
      </x:row>
    </x:range>
  </content>
</entry>

El elemento de fuente contiene XML que representa los datos del rango. A continuación se presentan los elementos XML de interés:

  • <range>  Elemento de rango. Representa el contenedor del rango devuelto.

  • <row>  Elemento de fila. Representa cada fila del rango.

  • <c>  Elemento de celda. Representa cada celda de una fila.

  • <fv>  Elemento de valor con formato. Representa el valor con formato aplicado por Excel. Si el valor es de tipo cadena en el libro, el elemento de valor con formato será el único elemento bajo <c>.

  • <v>  Elemento de valor. Representa un valor numérico. Si el valor en la celda es un número en lugar de una cadena, el elemento de valor incluirá esa información.

El uso de XML proporciona una manera más sencilla de obtener datos de un rango de Excel para usarlos en la aplicación.

Obtener acceso a los rangos mediante HTML

Si observa la dirección URL para obtener acceso a un rango con nombre mediante la fuente Atom, notará que la parte final de la dirección URL contiene un parámetro denominado $format, que está establecido en atom. Este parámetro también puede tener el valor html. Si cambia el valor atom por html, la dirección URL devolverá un fragmento HTML en lugar de una fuente Atom. A continuación se presenta un ejemplo de la dirección URL:

http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=html

En Internet Explorer, la página tendrá una apariencia similar a la siguiente ilustración.

Nota

Este HTML se puede consumir directamente en un IFRAME, o bien puede usarse en ECMAScript (JavaScript, JScript) para crear una experiencia más satisfactoria.

Obtener rango de detección de REST de Servicios de Excel mediante HTML

Vea también

Conceptos

URI de recursos de la API de REST de Servicios de Excel