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

library/dll の使用を開始する前Microsoft.Office.Interop.Wordに、そのライブラリのドキュメントを読む必要があります。

ここを読む:

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

また、使用している Office のバージョンによっても異なります。

于 2012-08-02T13:06:21.130 に答える
0

Document オブジェクトがある場合は、ドキュメント内の各段落の「番号」または「インデックス」を既に取得できます。たとえば、ドキュメントの 2 番目の段落のテキストを取得する必要がある場合は、次のようにします。

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 に答える