Feedback

C# - Word Inhaltsverzeichnis auslesen mit C#

Veröffentlicht von am 18.06.2011
(1 Bewertungen)
Grundvoraussetzung für die Funktion dieser Methode ist, eine Word Installation (Getestet mit Word 2007 und Word 2010).

1. Zunächst muss ein Verweis die zwei COM Objekte: Microsoft.Office.Core und Microsoft.Office.Interop.Word gesetzt werden.

2. Anschließend empfiehlt es sich einen Alias auf "Word" zu setzen, da sonst immer mit dem Vollqualifizierten Namen gearbeitet werden muss.
using Word = Microsoft.Office.Interop.Word; 

public static List<string> GetTocNodes(FileInfo WordFile)  
{  
     Object filePath = WordFile.FullName;  
  
     Word.Application wordApplication = new Word.Application();  
     wordApplication.Visible = false;  
   
     Word.Document wordDocument = new Word.Document();  
     wordDocument = wordApplication.Documents.Open(filePath);  
  
     //Inhaltsverzeichnis in tocContent speichern  
     string tocContent = wordApplication.ActiveDocument.TablesOfContents[1].Range.Text;  
  
     //Word Document und Anwendung schließen  
     wordDocument.Close();  
     wordApplication.Quit();  
  
     //Zerlegung des Inhaltsverzeichnisses in einzelne Überschriften  
     tocContent = tocContent.TrimEnd("\r".ToCharArray());  
  
     //Zerlegt das Inhaltsverzeichnis in einzelne Segmente  
     string[] paragraphs = tocContent.Split("\r".ToCharArray());  
  
     List<string> tocNodes = new List<string>();  
  
     foreach (string paragraph in paragraphs)  
     {  
          tocNodes.Add(paragraph)  
     }  
  
     return tocNodes;  
}   

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!