Búsqueda de sitios web

¿Cómo cargar una plantilla de lista en SharePoint Online usando PowerShell?


Requisito: Importar plantillas de listas en SharePoint Online usando PowerShell.

¿Por qué necesitamos plantillas de listas en SharePoint Online? Bueno, si tiene una lista con un conjunto de columnas y personalización en SharePoint Online, puede reutilizarla en cualquier otra colección de sitios sin tener que volver a crear la lista desde cero. Una plantilla de lista contiene campos, fórmulas, formato y datos opcionales. Las plantillas de lista se pueden descargar y cargar en otros sitios. En este tutorial, lo guiaremos a través del proceso de importar una plantilla de lista en SharePoint Online, para que pueda comenzar a usarla en su sitio de SharePoint.

URL de la galería de plantillas de listas de SharePoint Online
Listar la galería de plantillas en la URL de SharePoint Online: https://yourdomain.sharepoint.com/_catalogs/lt/Forms/AllItems.aspx

¿Cómo importar una plantilla de lista en SharePoint Online?

Las plantillas de listas de SharePoint se pueden usar para crear rápidamente nuevas listas o bibliotecas con la misma estructura y contenido que una lista o biblioteca existente. Importar una plantilla de lista le permite reutilizar una colección prediseñadas de configuraciones, vistas y datos en una nueva lista o biblioteca. Esta función puede ahorrar tiempo y esfuerzo en la creación de nuevas listas o bibliotecas, ya que no es necesario crearlas manualmente desde cero.

Las plantillas de lista (.STP) descargadas deben cargarse en la galería de plantillas de lista de cualquier colección de sitios para poder reutilizarlas. A continuación se explica cómo cargar una plantilla de lista en SharePoint Online:

  1. Vaya a Configuración >> página de configuración del sitio >> Haga clic en “Listar plantillas” en Galerías de diseñadores web (¿Falta la galería de plantillas de lista en SharePoint Online? Aquí está la solución: ¿La galería de plantillas de lista no está disponible en SharePoint Online?)
  2. Haga clic en el botón "Cargar" de la pestaña Archivos de la cinta

  3. Cargue el archivo .stp que descargó de la colección de sitios.

  4. Proporcione un nombre y título a la plantilla y presione Guardar.

Ahora, su plantilla de lista debería estar disponible como una APLICACIÓN en la colección de sitios en la que cargó la plantilla de lista. Veamos SharePoint Online PowerShell para cargar la plantilla de lista.

Cargar plantilla de lista en SharePoint Online usando PowerShell

A continuación se explica cómo importar una plantilla de lista en SharePoint Online usando PowerShell:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Function to Upload a list template To SharePoint Online using powershell
Function Upload-SPOListTemplate
{
    param
    (
        [string]$SiteURL  = $(throw "Enter the Site URL!"),
        [string]$ListTemplateName = $(throw "Enter the List Template Name!"),
        [string]$ListTemplateFile = $(throw "Enter the File Name to Upload List Template!")
    )
    Try {
        #Get Credentials to connect
        $Cred= Get-Credential
        $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials
        
        #Get the "List Templates" Library
        $List= $Ctx.web.Lists.GetByTitle("List Template Gallery")
        $ListTemplates = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) 
        $Ctx.Load($ListTemplates)
        $Ctx.ExecuteQuery()

        #Check if the Given List Template already exists
        $ListTemplate = $ListTemplates | where { $_["TemplateTitle"] -eq $ListTemplateName }

        If($ListTemplate -eq $Null)
        {
            #Get the file from disk
            $FileStream = ([System.IO.FileInfo] (Get-Item $ListTemplateFile)).OpenRead()
            #Get File Name from source file path
            $TemplateFileName = Split-path $ListTemplateFile -leaf
   
            #Upload the File to SharePoint Library
            $FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
            $FileCreationInfo.Overwrite = $true
            $FileCreationInfo.ContentStream = $FileStream
            $FileCreationInfo.URL = $TemplateFileName
            $FileUploaded = $List.RootFolder.Files.Add($FileCreationInfo)
            $Ctx.Load($FileUploaded) 
            $Ctx.ExecuteQuery() 
            
            #Set Metadata of the File
            $ListItem = $FileUploaded.ListItemAllFields
            $Listitem["TemplateTitle"] = $ListTemplateName
            $Listitem["FileLeafRef"] = $ListTemplateName
            $ListItem.Update()
            $Ctx.ExecuteQuery()
 
            #Close file stream
            $FileStream.Close()

            write-host -f Green "List Template '$ListTemplateFile' Uploaded to $SiteURL"
        }
        else
        {
            Write-host -f Yellow "List Template '$ListTemplateName' Already Exists"
        }
    }
    Catch {
        write-host -f Red "Error Uploading List Template!" $_.Exception.Message
    } 
}

#Variables
$SiteURL = "https://Crescent.sharepoint.com/"
$ListTemplateName= "Projects Template V4"
$ListTemplateFile = "C:\Temp\CrescentProject.stp"

#Call the function to Download the list template
Upload-SPOListTemplate -SiteURL $SiteURL -ListTemplateName $ListTemplateName -ListTemplateFile $ListTemplateFile

Esto carga la plantilla de lista en SharePoint Online mediante PowerShell. Para cargar una plantilla de lista en SharePoint Online, use: SharePoint Online PowerShell para cargar una plantilla de lista

¿Cómo cargar una plantilla de lista en varios sitios desde un archivo CSV?

Supongamos que tiene un archivo CSV con una lista de URL de sitios y desea cargar la plantilla de lista en todos los sitios del archivo CSV. Bueno, aquí se explica cómo implementar definiciones de listas STP en SharePoint Online usando PowerShell.

Simplemente reemplace este script de la línea 75 en el script anterior.


#Read CSV file
$CSVData = Import-CSV "C:\Temp\sites.csv" -Header SiteURL

#Iterate through each row
ForEach($Row in $CSVData)
{
    Write-host "Uploading to Site:"$Row.SiteURL
    
    #Call the Function to upload list template to site        
    Upload-SPOListTemplate -SiteURL $Row.SiteURL -ListTemplateName $ListTemplateName -ListTemplateFile $ListTemplateFile
}

Por último, pero no menos importante: debe habilitar las secuencias de comandos personalizadas para habilitar la "plantilla de lista" en su sitio: ¿Cómo habilitar las secuencias de comandos personalizadas en SharePoint Online?

Conclusión:

Si sigue los pasos descritos en este tutorial, podrá importar una plantilla de lista en SharePoint Online y comenzar a usarla para crear nuevas listas o bibliotecas con la misma estructura y contenido que la original. Esta característica puede ahorrar tiempo y esfuerzo en la creación de nuevas listas o bibliotecas y ayudarle a mantener una estructura y un contenido coherentes en todo su sitio de SharePoint.

Una vez cargadas las plantillas de listas, puede crear nuevas instancias de las listas a partir de la plantilla, ya sea desde la interfaz del navegador web o con PowerShell: ¿Cómo crear una lista a partir de una plantilla en SharePoint Online?

Artículos relacionados