2

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

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

我怎样才能做到这一点?

4

3 回答 3

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());
    }
于 2012-08-03T09:41:30.283 回答
1

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

在这里阅读:

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

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

于 2012-08-02T13:06:21.130 回答
0

如果您有一个 Document 对象,您已经可以获取文档中每个段落的“编号”或“索引”。比如你需要获取文档中第二段的Text,你说:

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();

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

于 2012-08-03T03:50:41.177 回答