给word文档插入目录,可以方便在阅读时快速定位相关内容的位置。这里介绍如何给现有的文档插入目录,然后移除目录。
首先,请查看原始文档内容, 里面包含了heading1(大纲级别1)、 heading2(大纲级别2)和heding3(大纲级别3)格式的内容。
下面的代码展示了如何将目录(toc)插入到文档之中。
c#
//创建document实例并加载文件
document doc = new document();
doc.loadfromfile(@"f:\testing\doc form\original document\inserttoc - 副本.docx", fileformat.docx2010);
//使用域代码自定义目录
tableofcontent toc = new tableofcontent(doc, "{\\o \"1-3\" \\h \\z \\u}");
paragraph p = doc.sections[0].paragraphs[0];
p.items.add(toc);
p.appendfieldmark(fieldmarktype.fieldseparator);
p.appendtext("toc");
p.appendfieldmark(fieldmarktype.fieldend);
doc.toc = toc;
//更新目录
doc.updatetableofcontents();
//保存文件
doc.savetofile("inserttoc.docx", fileformat.docx);
vb.net
'创建document实例并加载文件
dim doc as document = new document
doc.loadfromfile("f:\testing\doc form\original document\inserttoc - 副本.docx", fileformat.docx2010)
'使用域代码自定义目录
dim toc as tableofcontent = new tableofcontent(doc, "{\o ""1-3"" \h \z \u}")
dim p as paragraph = doc.sections(0).paragraphs(0)
p.items.add(toc)
p.appendfieldmark(fieldmarktype.fieldseparator)
p.appendtext("toc")
p.appendfieldmark(fieldmarktype.fieldend)
doc.toc = toc
'更新目录
doc.updatetableofcontents
'保存文件
doc.savetofile("inserttoc.docx", fileformat.docx)
结果文档:
下面介绍如何删除已添加的目录。
c#
//创建实例并加载带目录的文件
document doc = new document();
doc.loadfromfile("inserttoc.docx", fileformat.docx2010
//得到第一个章节
body body = doc.sections[0].body;
//遍历段落找到目录删除
regex regex = new regex("toc\\w ");
for (int i = 0; i < body.paragraphs.count; i )
{
if (regex.ismatch(body.paragraphs[i].stylename))
{
body.paragraphs.removeat(i);
i--;
}
}
//保存文件
doc.savetofile("removetoc.docx", fileformat.docx2010);
vb.net
'创建实例并加载带目录的文件
dim doc as document = new document
doc.loadfromfile("inserttoc.docx", fileformat.docx2010)
'得到第一个章节
dim body as body = doc.sections(0).body
'遍历段落找到目录删除
dim regex as regex = new regex("toc\w ")
dim i as integer = 0
do while (i < body.paragraphs.count)
if regex.ismatch(body.paragraphs(i).stylename) then
body.paragraphs.removeat(i)
i = (i - 1)
end if
i = (i 1)
loop
'保存文件
doc.savetofile("removetoc.docx", fileformat.docx2010)
结果文档: