Manage Word Headings to Form a Catalogue in C#, VB.NET

Word Heading can be taken as title of each part in Word document. This guide demonstrates solution to manage these Word headings and form them as a catalogue in C# and VB.NET.

In Word document, users can set some contents, for example, phrases of summary of the following paragraphs, as headings. These Word headings can be displayed in the first page of whole document and form as catalogue after arrangement so that readers can get outline of whole document. Solution in this guide presents how to manage Word headings with numbered style in a new created document in C# and VB.NET via Spire.Doc for .NET and screenshot below shows results of managing Word headings.

Word Paragraph Headings

Heading is one of kind of styles for paragraphs and Spire.Doc for .NET provides several BuiltinStyle types for paragraphs. In this example, three BuiltinStyle types will be applied: Heading1, Heading2 and Heading3. Following, details will be presented step by step.

Firstly, initialize a Document instance and add section, paragraph for this instance. Secondly, invoke AppendText method with parameter string text and ApplyStyle(BuiltinStyle.Heading1) method of Paragraph class to add text and set heading style for new added paragraph. Then, invoke ListFromat.ApplyNumberedStyle() method of Paragraph class to set number list for it. Thirdly, add new paragraph and set Heading2 style for it as the previous step. Initialize a ListStyle instance for document with Numbered ListType. Then, initialize a ListLevel instance from ListStyle and set UsePrevLevelPattern and NumberPrefix properties for this instance. After that, invoke ListStyleCollection.Add(ListStyle) method of Document class and ListFormat.ApplyStyle method of Paragraph class with parameter string styleName to add ListStyle for Heading2. Fourthly, add a new paragraph and set BuiltinStyle as Heading3 and apply ListStyle for this paragraph as the previous step. Finally, invoke SaveToFile method of Document class with parameter string fileName and FileFormat to save this document. Refer the code:

using Spire.Doc;
using Spire.Doc.Documents;

namespace WordHeading
    class Heading
        static void Main(string[] args)
            //Create Document
            Document document = new Document();
            Section section = document.AddSection();
            Paragraph paragraph
                = section.Paragraphs.Count > 0 ? section.Paragraphs[0] : section.AddParagraph();

            //Add Heading 1
            paragraph = section.AddParagraph();

            //Add Heading 2
            paragraph = section.AddParagraph();

            //List Style for Headings 2
            ListStyle listSty2 = new ListStyle(document, ListType.Numbered);
            foreach (ListLevel listLev in listSty2.Levels)
                listLev.UsePrevLevelPattern = true;
                listLev.NumberPrefix = "1.";
            listSty2.Name = "MyStyle2";
            //Add List Style 3
            ListStyle listSty3 = new ListStyle(document, ListType.Numbered);
            foreach (ListLevel listLev in listSty3.Levels)
                listLev.UsePrevLevelPattern = true;
                listLev.NumberPrefix = "1.1.";
            listSty3.Name = "MyStyle3";

            //Add Heading 3
            for (int i = 0; i < 4; i++)
                paragraph = section.AddParagraph();

                //Append Text

                //Apply List Style 3 for Heading 3

            //Save and Launch
            document.SaveToFile("Word Headings.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Word Headings.docx");   
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace WordHeading
    Friend Class Heading
        Shared Sub Main(ByVal args() As String)
            'Create Document
            Dim document As New Document()
            Dim section As Section = document.AddSection()
            Dim paragraph As Paragraph = If(section.Paragraphs.Count > 0, section.Paragraphs(0), section.AddParagraph())

            'Add Heading 1
            paragraph = section.AddParagraph()

            'Add Heading 2
            paragraph = section.AddParagraph()

            'List Style for Headings 2
            Dim listSty2 As New ListStyle(document, ListType.Numbered)
            For Each listLev As ListLevel In listSty2.Levels
                listLev.UsePrevLevelPattern = True
                listLev.NumberPrefix = "1."
            Next listLev
            listSty2.Name = "MyStyle2"

            'Add List Style 3
            Dim listSty3 As New ListStyle(document, ListType.Numbered)
            For Each listLev As ListLevel In listSty3.Levels
                listLev.UsePrevLevelPattern = True
                listLev.NumberPrefix = "1.1."
            Next listLev
            listSty3.Name = "MyStyle3"

            'Add Heading 3
            For i As Integer = 0 To 3
                paragraph = section.AddParagraph()

                'Append Text

                'Apply List Style 3 for Heading 3
            Next i

            'Save and Launch
            document.SaveToFile("Word Headings.docx", FileFormat.Docx)
            System.Diagnostics.Process.Start("Word Headings.docx")
        End Sub
    End Class
End Namespace

Spire.Doc, as professional Word component, is very powerful on fast generating, loading, writing, modifying and saving Word documents in .NET, WPF, Silverlight without Word automation and any third party tools.