Exportar a Excel cualquier lista
Conceptos a utilizar
Primero que nada vamos a usar una consulta por RPC al Sharepoint, estas librerias se usan para hacer conecciones especificas. En este caso vamos a usar owssvr.dll estas llamadas se hacen via url y devuelven diferentes cosas dependiendo lo que quedamos hacer. Aca les dejo un listado de comandos:
Comando (Cmd=) |
Descripción |
Parametros |
---|---|---|
Un parámetro especial que se utiliza dentro del comando = Mostrar Cmd que se abre una vista de las bibliotecas de documentos dentro de un sitio, una vista de una biblioteca de documentos específicos, o una vista de una carpeta dentro de una biblioteca de documentos que se utiliza en un cuadro de diálogo para abrir o guardar archivos; o abre el formulario de propiedad que se utiliza al guardar un archivo. |
dialogview,location,FileDialogFilterValue |
|
Ejecuta una query a la Base de Datos mediante el GUID de la lista y deuvelve un html o un xml |
List, XMLDATA,View, Query,Using,CacheControl,ID |
|
Exporta en modo CAML (Collaborative Application Markup Language) mediante la GUID de la lista |
List |
|
Consulta por el esquema XML de un Sitio. |
SiteTemplate |
|
Devuelve la información de la utilizacion de un Sitio Especifico. |
BlobType |
|
Este metodo genera hits en una pagina, siempre y cuando tenga el contador activado. |
Page, Image,Custom, Digits |
|
Consulta por el contenido de una vista en particular de una lista mediante el GUID de la Lista |
List, View,URLBase |
Como verán son varios comandos que se pueden ejecutar. Los links de los comandos son a Technet apuntando a una pagina en ingles.
Filtros Adicionales
Adicionalmente hay otros parametros que se pueden colocar para lograr mas filtrados o ordenes en particular.
FileDialogFilterValue setea un filtro en una vista de una libreria de documentos para devolver ciertas extensiones. (Ejemplos: *.doc, *.ppt, or *.xls).
FilterField n este filtro es para filtrar un campo o limitar el tamaño de lo que va a devolver.
FilterValue n este filtro es igual que el anterior pero a los valores de los campos.
SortField to este filtro es para ordenar por un campo especifico.
SortDir to con este indicamos la dirreccion del anterior acendentes (asc) o desendentes (desc).
Using to con esto especificamos la url del archivo virtual que vamos a usar para exportar los elementos de una lista, debe tener especificado solo uno de estos: vcard.vcf, event.ics, query.iqy, or query.bqy.
Ahora bien habiendo haciendo la entrada a los elementos que vamos a usar, vamos a armar un comando para poder hacer una exportación de Elementos de una Encuesta.
Como sabrás si llegaste a este post las encuestas no te devuelven quien contesta solo que contestaron y las cantidades. A veces necesitamos un poco mas como saber quien contesto para ver quien cumplió o no participo.
Armado de la Consulta
primero veamos de armar la url para el export, para ello necesitamos el id de la lista que vamos a exportar.
Supongamos que la tenemos en el sitio http://sp2013/list/encuesta. Bueno entramos y vamos a Configuración > Configuración de la Encuesta
https://stucker2016.files.wordpress.com/2016/03/configuracion.png?w=680
Vamos a ver que la url cambia y nos pone algo como esto.
http://sp2013/_layouts/15/start.aspx#/_layouts/15/survedit.aspx?List=%7B3E01CE5E%2D6A14%2D4299%2D99EE%2D3BABB6457D37%7D
bueno ven que dice List=%7B3E01CE5E%2D6A14%2D4299%2D99EE%2D3BABB6457D37%7D eso es lo que estamos buscando ese es el id de la lista.
Les recomiendo una pagina que encontré (en Ingles) que saca en limpio los id de las listas y vistas para poder hacerles las cosas mas faciles. http://www.surfpointtech.com/2013/10/14/sharepoint-list-id-and-view-id-calculator/
esto funciona muy facil ponen en el campo grande la url y les devuelve el id de la lista.
https://stucker2016.files.wordpress.com/2016/03/id.png?w=680
Este es el id que vamos a necesitar para armar la url.
Testeo de la query
Probamos en un browser a ver si estamos creandola bien, poniendo lo siguiente como url.
http://sp2013/_vti_bin/owssvr.dll?CS=109&Using=_layouts/query.iqy&List={3E01CE5E-6A14-4299-99EE-3BABB6457D37}&CacheControl=1
si todo sale bien, les aparecerá un archivo para bajar al abrirlo va a abrir el excel y les va a mostrar la información de la lista.
https://stucker2016.files.wordpress.com/2016/03/excel.png?w=680
Nota: Esto esta probado en Internet Explorer
Creación del Boton
Ahora vamos a crear el boton para exportar, ya que esta información la va a poder usar cualquiera vamos a crear una pagina especifica para esto. Vamos a la la tuerquita > Agregar Pagina.
https://stucker2016.files.wordpress.com/2016/03/agregar-pagina.png
Le ponemos un nombre en mi caso pongo exportar.
https://stucker2016.files.wordpress.com/2016/03/exportar.png
Una ves dentro vamos a Editar Fuentes.
https://stucker2016.files.wordpress.com/2016/03/fuentes.png
y agregamos el siguiente codigo.
<input type="button" style="width:180px; height: 75px; 30px;background:gray; color:white;font-size:larger; font-weight:bold;"onclick="window.location.href='http://sp2013/_vti_bin/owssvr.dll?CS=109&Using=_layouts/query.iqy&List={3E01CE5E-6A14-4299-99EE-3BABB6457D37}&CacheControl=1';" value ="Exportar A Excel"/>
Aceptamos los cambios. Y guardamos la pagina.