En este envío pretendo combinar los 4 anteriores: obtener datos de Sharepoint, generar un documento Excel y – finalmente –
subirlo a Sharepoint en una biblioteca de documentos.
Código fuente
Código
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace TestCompendio
{
class Program
{
var pFolder=@"M:\Training\Screencasts\Office y Sharepoint\Code";
var autoXSLX = "AutoBook.xlsx";
var emptyXSLX = "EmptyBook.xlsx";
var docLibrary = @"http://moss:20001/doclibrary/";
XmlNode Contactos=null;
static void Main(string[] args)
{
//Obtener Listado de Contactos de Sharepoint
ObtenerContactos();
//Generar una hoja de cálculo basada en una plantilla y cargarle los Contactos
InsertarContactosEnHojaDeCalculo();
//Subir el documento a una biblioteca de documentos
DescargarDocumentoEnSharepoint();
}
private static void DescargarDocumentoEnSharepoint()
{
WSClient.Uploader.CopyDocumentToLibrary(System.IO.Path.Combine(pFolder, autoXSLX), "Documento Excel", autoXSLX, docLibrary);
}
private static void InsertarContactosEnHojaDeCalculo()
{
CreateSpreadsheet(Contactos, System.IO.Path.Combine(pFolder, emptyXSLX), System.IO.Path.Combine(pFolder, autoXSLX));
}
private static void ObtenerContactos()
{
Contactos = WSClientVB.Reader.GetRecords("http://moss:20001", "Contacts");
}
static void CreateSpreadsheet(System.Xml.XmlNode Contactos, string emptyPath, string autoPath)
{
var Datos = Contactos.ChildNodes;
var docBuilder = new SDK2.Excel();
docBuilder.TransformDocument(emptyPath, autoPath, Datos.Item(1));
}
}
}
Esquema de trabajo e invocación de componentes
Código fuente