我在单词模板中有多个表,需要以其他方式更改每个表。也有可能删除或插入一个或另一个,所以我不能说我拿第5个并且总是相同的。
必须保存标识,以便我不能使用.ID值。
用VSTO识别特定表的方法是什么?优选的也可以在没有VSTO的情况下在文档中设置。
答案 0 :(得分:1)
我找到了办法:
在单词中标记表格并为其添加书签。您必须选择一个唯一的名称,以便您也可以识别该表。可以使用以下方法进行识别:
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;
}
答案 1 :(得分:1)
我遇到了类似的问题。为了解决这个问题,我在word tamplate中设置了表格的标题(右键单击表格 - >表格属性...-> Alt text->标题),并在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;
}
答案 2 :(得分:0)
是否可以将表的替代文本用作标识符?
使用以下代码检索它们(从here复制的代码)
Word.Application wdApp = Application;
Word.Document wdDoc = wdApp.ActiveDocument;
Word.Table wdTable = wdDoc.Tables[1];
MessageBox.Show(wdTable.Title + "\n" + wdTable.Descr);