2012-05-29 48 views
0

我有以下方法(不是我的程序),它将表数据插入到文档的末尾。我想将数据插入文档中的书签。如何引用该书签而不是\ endofdoc?在书签上插入

private static void CreateTable(Microsoft.Office.Interop.Word.Document oWordDoc, int RowCount, int ColumnCount, string[,] TableContent) 
    { 
     Table oTable; 
     object oEndOfDoc = "\\endofdoc"; 
     object missing = System.Reflection.Missing.Value; 
     Range wrdRng = oWordDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; 
     oTable = oWordDoc.Tables.Add(wrdRng, RowCount, ColumnCount, ref missing, ref missing); 


     oTable.ID = "ContentTable"; 
     int r, c; 


     for (r = 0; r < RowCount; r++) 
      for (c = 0; c < ColumnCount; c++) 
      { 
       oTable.Cell(r + 1, c + 1).Range.Text = TableContent[r, c]; 
      } 


     //oTable.Rows[1].Range.Font.Bold = 1; 

     oTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap; 
     oTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle; 
    } 
+0

您是否尝试过传递书签的ID而不是'“\\ endofdoc”'? –

+0

因此,只需引用书签名称,如: object oBookMark =“书签名称”; – user1059110

回答

1

下面的代码从c-sharpcorner这应该让你开始与负责书签被扑杀。

//BOOK MARK FOR START OF SELECTION 

Object oBookmarkStart = "BookMark__Start"; 

Object oRngoBookMarkStart = oWordDoc.Bookmarks.get_Item(ref oBookmarkDesignInfoStart).Range.Start; 



//BOOK MARK FOR END OF SELECTION 

Object oBookmarkEnd = "BookMark__End"; 

Object oRngoBookMarkEnd = oWordDoc.Bookmarks.get_Item(ref oBookmarkDesignInfoEnd).Range.Start; 



//SETTING THE RANGE ON THE BOOKMARK BETWEEN TWO BOOKMARKS 

Word.Range rngBKMarkSelection = oWordDoc.Range(ref oRngoBookMarkStart, ref oRngoBookMarkEnd); 



//SELECTING THE TEXT 

rngBKMarkSelection.Select(); 
rngBKMarkSelection.Delete(ref oMissing, ref oMissing);