1

Word テンプレートに複数のテーブルがあり、それぞれを別の方法で変更する必要があります。また、どちらか一方が削除または挿入される可能性があるため、5 番目が常に同じであるとは言えません。
ID を保存する必要があるため、.ID 値を使用できません。

VSTO で特定のテーブルを識別する方法はありますか? VSTOなしでドキュメントにも設定できる好ましいもの。

4

3 に答える 3

1

同様の問題に遭遇しました。この問題を解決するために、Word tamplate でテーブルのタイトルを設定し (右クリック テーブル -> テーブル プロパティ... -> 代替テキスト -> タイトル)、Word 文書内のすべてのテーブルでタイトルを検索します。以下は、テーブルを検索するために使用したコードです。

public static Table getTable(Document doc, String title){
    int totalTables = doc.Tables.Count;
    Microsoft.Office.Interop.Word.Table ret = null;
    for (int i = 1; i <= totalTables; i++){
        if (title.Equals(doc.Tables[i].Title, StringComparison.OrdinalIgnoreCase)){
            ret = doc.Tables[i];
            break;
        }
    }
    return ret;
}
于 2013-05-30T16:00:39.113 に答える
1

私はそれを行う方法を見つけました:

Word で表をマークし、ブックマークを追加します。テーブルを識別できるように、一意の名前を選択する必要があります。識別は、次のような方法で行うことができます。

public Word.Bookmark GetBookmark(String bookmarkName)
{
    // Find bookmark
    Word.Bookmark bookmark = null;
    foreach (Word.Bookmark curBookmark in Globals.ThisDocument.Bookmarks)
    {
        if (curBookmark.Name.Equals(bookmarkName))
        {
            bookmark = curBookmark;
            break;
        }
    }

    return bookmark;
}
于 2012-08-10T12:55:09.477 に答える
0

表の代替テキストを識別子として使用することはできますか?

以下のコードを使用してそれらを取得します (ここからコピーされたコード)

 Word.Application wdApp = Application;
 Word.Document wdDoc = wdApp.ActiveDocument;
 Word.Table wdTable = wdDoc.Tables[1];
 MessageBox.Show(wdTable.Title + "\n" + wdTable.Descr);
于 2012-06-26T14:49:05.250 に答える