How to Create SharePoint List or Library Programmatically?

At times, We may have to create List or Document Libraries programmatically. These code snippets will help to get it done.

Using .Net Object Model (C#)

          using (SPSite site = new SPSite("http://sharepoint"))
                using (SPWeb web = site.OpenWeb())
                    //Create a document library
                    web.Lists.Add("Project Docs", "Library for Storing Project Documents", SPListTemplateType.DocumentLibrary);

                    //Create a Link List
                    web.Lists.Add("Portal Links", "Links to Portal Resources", SPListTemplateType.Links);
                    //SPListTemplateType.Links can be: SPListTemplate AssetTemplate = web.ListTemplates["Links"];

                    //Create a List based on Custom List template
                    SPListTemplateCollection CustomListTemplates = site.GetCustomListTemplates(web);
                    SPListTemplate TrainingTemplate = CustomListTemplates["Training List Template"];
                    web.Lists.Add("Project Links", "Links to project artifacts", TrainingTemplate);

                    //Set the Show in Quick Lanuch Property
                    SPList ProjectLinks = web.Lists["Project Links"];
                    ProjectLinks.OnQuickLaunch = true;

                    // Add new column to the List
                    ProjectLinks.Fields.Add("Link Description", SPFieldType.Text,true);

                        // If the "Notes"  Rich Text Field field, if is not in the List already!
            SPFieldCollection fields = ProjectLinks.Fields;
                if (!fields.ContainsField("Notes"))
                    //Add Notes field Rich Text Field
                    SPFieldMultiLineText oFldNotes = (SPFieldMultiLineText)CaseNotes.Fields[CaseNotes.Fields.Add("Notes", SPFieldType.Note, true)];
                    oFldNotes.RichText = true;
                    oFldNotes.RichTextMode = SPRichTextMode.FullHtml;
                    //Update the List


For all available List template types, Refer: SPListTemplateType

Create SharePoint List using PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 
$site = Get-SPSite -Identity "http://sharepoint"
$web= $site.OpenWeb()

#Create a Link List
$LinkTemplate = $web.ListTemplates["Links"];
$web.Lists.Add("Support Links", "Links to Portal support", $LinkTemplate);
#$LinkTemplate can be: $LinkTemplate = [Microsoft.SharePoint.SPListTemplateType]::Links

#set Quick lanuch option
$SupportLinkList = $web.Lists["Support Links"]
$SupportLinkList.OnQuickLaunch = $true
#Add new Field
$spFieldType = [Microsoft.SharePoint.SPFieldType]::Text
$SupportLinkList.Fields.Add("Link Description",$spFieldType,$true)

#Create a List based on Custom List template
$CustomListTemplates = $site.GetCustomListTemplates($web)
$web.Lists.Add("Project Links", "Links to project artifacts", $CustomListTemplates["Training List Template"])



  1. Hi ,
    Can anyone please tell me what is SPSite here.


    1. Manoj,
      SPSite is the Class/Object for handling SharePoint "Site Collection" programmatically. You can Retrieve/Manipulate Site collection objects with SPSite.


Please Login and comment to get your questions answered!

Powered by Blogger.