案例是这样的:我选择的是一个表中的两行数据,我想删除这两行。当我使用下面的代码时,行中的内容被删除了,但是行还在。所以,我的问题是:如何删除整行?谢谢。 顺便说一句,我使用“书签”来操作选择。
/// <summary>
/// Delete table row
/// </summary>
/// <param name="bookmark"></param>
public void DeleteTableRow(string bookmark)
{
object oBookmark = bookmark;
if (doc.Bookmarks.get_Item(ref oBookmark) != null) {
doc.Bookmarks.get_Item(ref oBookmark).Select();
object wdLine = WdUnits.wdLine;
object wdParagraph = WdUnits.wdParagraph;
object wdTableRow = WdUnits.wdRow;
object wdCharacter = WdUnits.wdCharacter;
object wdExtend = WdMovementType.wdExtend;
object oCount = 1;
Selection selection = app.Selection;
selection.HomeKey(ref wdLine, ref nullobj);
selection.MoveDown(ref wdLine, ref oCount, ref wdExtend);
selection.Delete(ref wdCharacter, ref nullobj);
}
}
最佳答案
有一个类似的问题,需要删除未使用的表行,采用这种方法: 如果您有选择 2 行的“书签”,您可以像这样删除它们(至少在 Word2016 中):
object oBookmark = bookmark;
if (doc.Bookmarks.get_Item(ref oBookmark) != null)
doc.Bookmarks.get_Item(ref oBookmark).Range.Rows.Delete();
似乎有效(至少在 Word2016 中),但不知何故我的格式被破坏了(那是一个噩梦模板),然后继续使用“选择”(并且它运行顺利):
bookmark.Select();
app.Selection.Rows.Delete();
不确定它从哪个版本开始工作,但如果有人遇到同样的问题,我会把它留在那里。
主要是 Range 和 Selection 对象都具有 Rows 属性,它们具有 Delete 方法,其工作方式类似于 Word 中的“删除行”操作。
关于c# - 如何使用C#删除word中当前选中的表格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621475/