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.
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(); paragraph.AppendText(BuiltinStyle.Heading1.ToString()); paragraph.ApplyStyle(BuiltinStyle.Heading1); paragraph.ListFormat.ApplyNumberedStyle(); //Add Heading 2 paragraph = section.AddParagraph(); paragraph.AppendText(BuiltinStyle.Heading2.ToString()); paragraph.ApplyStyle(BuiltinStyle.Heading2); //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"; document.ListStyles.Add(listSty2); paragraph.ListFormat.ApplyStyle(listSty2.Name); //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"; document.ListStyles.Add(listSty3); //Add Heading 3 for (int i = 0; i < 4; i++) { paragraph = section.AddParagraph(); //Append Text paragraph.AppendText(BuiltinStyle.Heading3.ToString()); //Apply List Style 3 for Heading 3 paragraph.ApplyStyle(BuiltinStyle.Heading3); paragraph.ListFormat.ApplyStyle(listSty3.Name); } //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() paragraph.AppendText(BuiltinStyle.Heading1.ToString()) paragraph.ApplyStyle(BuiltinStyle.Heading1) paragraph.ListFormat.ApplyNumberedStyle() 'Add Heading 2 paragraph = section.AddParagraph() paragraph.AppendText(BuiltinStyle.Heading2.ToString()) paragraph.ApplyStyle(BuiltinStyle.Heading2) '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" document.ListStyles.Add(listSty2) paragraph.ListFormat.ApplyStyle(listSty2.Name) '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" document.ListStyles.Add(listSty3) 'Add Heading 3 For i As Integer = 0 To 3 paragraph = section.AddParagraph() 'Append Text paragraph.AppendText(BuiltinStyle.Heading3.ToString()) 'Apply List Style 3 for Heading 3 paragraph.ApplyStyle(BuiltinStyle.Heading3) paragraph.ListFormat.ApplyStyle(listSty3.Name) 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.