Mostrando entradas con la etiqueta Excel Services. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel Services. Mostrar todas las entradas

viernes, 30 de diciembre de 2011

SharePoint 2010: Forzar la apertura de documentos en cliente

Al abrir un fichero Excel desde SharePoint nos puede aparecer un error del tipo “No se puede procesar la solicitud. Espere unos minutos e intente realizar de nuevo la operación”. Esto se debe a que se han activado las características empresariales habilitándose la funcionalidad de visualización de ficheros Excel desde Excel Services. El problema es que además de estar habilitado debemos tener configurada una aplicación de servicio de Excel Services.

clip_image002

Podremos entonces forzar que los documentos se abran en cliente indicándolo para una biblioteca determinada o forzar la apertura en cliente en toda la colección de sitios.

Para forzar la apertura en cliente desde una biblioteca de documentos:

  • Desde la configuración de la biblioteca de documentos > Configuración avanzada.
  • En la sección “Abrir documento desde el explorador” seleccionar “Abrir en aplicación cliente”.

image

Para forzar la apertura en cliente en toda la colección de sitios activaremos la característica de colección de sitios “Abrir los documentos en aplicaciones cliente de forma predeterminada”.

  • Configuración de sitio (nivel superior) > Características de la colección de sitios > activamos la característica con el título “Abrir los documentos en aplicaciones cliente de forma predeterminada”.

clip_image002[4]

lunes, 28 de febrero de 2011

Deshabilitar vista explorador con Excel Services

Excel Services consiste en un servicio de SharePoint 2010 que permite manejar ficheros Excel desde un entorno Web. Su principal objetivo es el de proveer de la potencia de cálculo de Excel mediante SharePoint.

Otra de sus cualidades es que se puede compartir gráficos, tablas dinámicas, … pero sin llegar a compartir las fórmulas y los datos de los que se obtienen.

image

Desde el post MOSS: Guías paso a paso de Excel Services y otros recursos! encontraréis una serie de artículos adicionales sobre cómo habilitar y configurar este servicio.

Uno de los problemas que encontraremos al habilitar Excel services es que todos los documentos con extensión .XLSX de la colección de sitios se abrirán por defecto en modo explorador aunque tengamos marcado que se muestre en modo cliente desde la biblioteca de documentos.

image

Para forzar que se abran los ficheros Office en modo cliente habilitaremos la feature “OpenInClient”, para éllo abriremos una consola de PowerShell:

$defaultOpenBehaviorFeatureId = $(Get-SPFeature -limit all | where {$_.displayname -eq "OpenInClient"}).Id

Con el Cmdlet Get-SPFeature devuelve un listado de las features disponibles, y mediante “where” aplicamos un filtro para obtener la feature cuya propiedad DisplayName sea igual a “OpenInClient”. Una vez obtenido el id de la feature y activaremos la feature.

Get-SPSite http://c8191497276/sitios/excelservices/ -limit ALL |foreach{ Ensable-SPFeature $defaultOpenBehaviorFeatureId -url $_.URL }

iisreset

image

image

 

Desde el post Configure the default open behavior for browser-enabled documents (Office Web Apps) encontrareis más información sobre como activar desactivar la funcionalidad browser-enabled.

lunes, 18 de octubre de 2010

Dónde está Microsoft.Office.Excel.WebUI?

Para utilizar los controles de Excel Services podemos utilizar directamente las clases del ensamblado Microsoft.Office.Excel.WebUI.dll. El problema que encontramos a la hora de agregarlo a nuestro proyecto de visual Studio es que la dll no se encuentra en alguna de las carpetas de SharePoint “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14” y “C:\Program Files\Microsoft Office Servers\14.0”.

La solución consiste en extraer Microsoft.Office.Excel.WebUI del GAC e incluirlo en las carpetas del proyecto. Para extraerlo del GAC:

  1. Abrimos una consola de comandos con permisos de administrador
  2. cd c:\Windows\assembly
  3. dir (para consultar los ficheros disponibles)
  4. cd GAC_MSIL
  5. cd Microsoft.Office.Excel.WebUI
  6. cd 14.0.0.0__71e9bce111e9429c
  7. copy Microsoft.Office.Excel.WebUI.dll c:\ (Para extraer una copia a c")

 

Al agregar el fichero al proyecto podremos utilizar por ejemplo el control ExcelWebRender con el que personalizar la presentación de ExcelServices.

Si estamos realizando una migración desde 2007 a 2010 nos podemos encontraremos un error al compilar:

Error    1    El tipo 'Microsoft.Office.Excel.WebUI.IStateOwner' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'Microsoft.Office.Excel.WebUI.Internal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. 

Error    2    El tipo 'Microsoft.Office.Excel.WebUI.IMainControl' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'Microsoft.Office.Excel.WebUI.Internal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.  
Error    3    El tipo 'Microsoft.Office.Excel.WebUI.IRenderingContext' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'Microsoft.Office.Excel.WebUI.Internal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.  

 

Esto se debe a que la firma de las dll’s ha cambiado y se han agregado nuevas dll’s para el manejo de Excel Services. De modo que tendremos que cambiar en nuestros ASCX o ASPX las firmas de los assemblies:

 

SharePoint 2007:

<%@ Register TagPrefix="WpNs0" Namespace="Microsoft.Office.Excel.WebUI" Assembly="Microsoft.Office.Excel.WebUI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

SharePoint 2010:
<%@ Register TagPrefix="WpNs0" Namespace="Microsoft.Office.Excel.WebUI" Assembly="Microsoft.Office.Excel.WebUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

 

Además añadiremos la dll Microsoft.Office.Excel.WebUI.Internal.dll que se encuentra también en el GAC, para extraerla utilizaremos una secuencia similar a la anterior:

  1. Abrimos una consola de comandos con permisos de administrador
  2. cd c:\Windows\assembly
  3. dir (para consultar los ficheros disponibles)
  4. cd GAC_MSIL
  5. cd Microsoft.Office.Excel.WebUI.Internal
  6. cd 14.0.0.0__71e9bce111e9429c
  7. copy Microsoft.Office.Excel.WebUI.Internal.dll c:\ (Para extraer una copia a c")