We have already demonstrated how to add a brand new TOC when we create the word documents. This article will show you how to insert a TOC to the existing word documents with styles and remove the TOC from the word document.
Firstly, view the sample document with Title, Heading1 and Heading 2 styles:
The below code snippet shows how to insert a Table of contents (TOC) into a document.
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Text.RegularExpressions; namespace InsertTOC { class Program { static void Main(string[] args) { //Create a new instance of Document and load the document from file. Document doc = new Document(); doc.LoadFromFile("Sample.docx", FileFormat.Docx2010); //Add the TOC to the document TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\h \\z \\u}"); Paragraph p = doc.LastSection.Paragraphs[0]; p.Items.Add(toc); p.AppendFieldMark(FieldMarkType.FieldSeparator); p.AppendText("TOC"); p.AppendFieldMark(FieldMarkType.FieldEnd); doc.TOC = toc; //Update the table of contents doc.UpdateTableOfContents(); //Save the document to file doc.SaveToFile("Result.docx", FileFormat.Docx); } } }
Removing a Table of Contents from the Document
using Spire.Doc; using System.Text.RegularExpressions; namespace RemoveTOC { class Program { static void Main(string[] args) { //load the document from file with TOC Document doc = new Document(); doc.LoadFromFile("Result.docx", FileFormat.Docx2010); //get the first body from the first section Body body = doc.Sections[0].Body; //remove TOC from first body Regex regex = new Regex("TOC\\w+"); for (int i = 0; i < body.Paragraphs.Count; i++) { if (regex.IsMatch(body.Paragraphs[i].StyleName)) { body.Paragraphs.RemoveAt(i); i--; } } //save the document to file doc.SaveToFile("RemoveTOC.docx", FileFormat.Docx2010); } } }