想要删除Word文档中,包含特定描述的标题下所有内容(包含各级子标题以及正文描述)。
例如下图中,想删除1.2.1.19.1业务场景下所有内容:
简单版:
删除光标停留位置的大纲级别下所有的内容。实现的JS代码如下:
ActiveWindow.ActivePane.View.Type = wdOutlineView;
if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal)
{//删除本大纲级别下的所有内容
ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel);
Selection.Paragraphs.Item(1).Range.Select();
Selection.Delete(wdCharacter,1);
}
ActiveWindow.ActivePane.View.Type = wdNormalView;
其中,指定视图类型WdViewType 枚举类型说明如下:
名称 | 值 | 说明 |
---|---|---|
wdMasterView | 5 | 主控视图。 |
wdNormalView | 1 | 普通视图。 |
wdOutlineView | 2 | 大纲视图。 |
wdPrintPreview | 4 | 打印预览视图。 |
wdPrintView | 3 | 页面视图。 |
wdReadingView | 7 | 阅读视图。 |
wdWebView | 6 | Web 视图。 |
进阶版:
查找指定的文本,文本如果为标题,则删除该标题下所有的子标题和文本内容。实现的JS代码参考如下:
function 删除标题内容()
{
findStr = "业务场景";
ActiveWindow.ActivePane.View.Type = wdOutlineView;
while(1)
{
Selection.Find.Forward = true;
Selection.Find.Text = findStr;
Selection.Find.Wrap = wdFindAsk;
ActiveWindow.ActivePane.View.ShowAllHeadings();
let re = Selection.Find.Execute(findStr, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, wdReplaceNone, undefined, undefined, undefined, undefined);
if(re == false)
{
Selection.HomeKey(wdStory,wdMove);
ActiveWindow.ActivePane.View.Type = wdNormalView;
MsgBox("无法找到您查找的内容:"+findStr,jsOKOnly,"提示");
return;
}
else{
if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal)
{//删除本大纲级别下的所有内容
ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel);
Selection.Paragraphs.Item(1).Range.Select();
Selection.Delete(wdCharacter,1);
}
}
}
}