如何使用C#获取word文档中的段落编号?

时间:2012-08-02 13:03:36

标签: c# ms-word docx

我使用程序集Microsoft.Office.Interop.Word;

我的文档是Microsoft.Office.Interop.Word.Document对象,我想获取本文档中每个段落的编号。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

你需要这样的东西:

    object misValue = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
    object docPth = @"c:\tmp\aDoc.doc";
    Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(ref docPth, ref misValue, ref misValue,
        ref misValue, ref misValue, ref misValue, ref misValue, ref misValue, ref misValue, ref misValue,
        ref misValue, ref misValue, ref misValue, ref misValue, ref misValue, ref misValue);
    wordApp.Visible = true;
    foreach (Microsoft.Office.Interop.Word.Paragraph aPar in aDoc.Paragraphs)
    {
        Microsoft.Office.Interop.Word.Range parRng = aPar.Range;
        string sText = parRng.Text;
        string sList = parRng.ListFormat.ListString;
        int nLevel = parRng.ListFormat.ListLevelNumber;
        MessageBox.Show("Text = " + sText + " - List = " + sList + " - Level " + nLevel.ToString());
    }

答案 1 :(得分:1)

在开始使用Microsoft.Office.Interop.Word library / dll之前,您必须阅读该库的文档。

请阅读:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.paragraphs_members.aspx

另外,取决于您使用的Office版本。

答案 2 :(得分:0)

如果您有Document对象,则可以获取文档中每个Paragraph的'number'或'index'。例如,如果您需要获取文档中第二段的文本,请说:

MSWord.Application app = (MSWord.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
MSWord.Document doc = app.ActiveDocument; //the document that's on screen and 'active'

Console.WriteLine("Paragraph Count: " + doc.Paragraphs.Count); //show total number of paragraphs available in document.
Console.Write Line("Paragraph number 2 text: " + doc.Paragraphs[2].Range.Text);               //show text of paragraph number 2

Console.ReadLine();

如果这没有帮助。请...编辑你的问题。在你澄清之前,我们真的无能为力。