C# 给word文档添加目录

yqsg1217 2011-12-07 10:09:04
public void mulv() {
Object oMissing = System.Reflection.Missing.Value;
Object oTrue = true;
Object oFalse = false;

Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();

object fileName = Server.MapPath("../Words/test.doc");
doc = oWord.Documents.Open(ref fileName,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

oWord.Selection.Paragraphs.OutlineLevel = WdOutlineLevel.wdOutlineLevel2;
oWord.Selection.Paragraphs.OutlineLevel = WdOutlineLevel.wdOutlineLevel3;
oWord.Selection.Paragraphs.OutlineLevel = WdOutlineLevel.wdOutlineLevelBodyText;

object x = 0;
Range myRange = doc.Range(ref x, ref x);
Object oUpperHeadingLevel = "1";
Object oLowerHeadingLevel = "3";
Object oTOCTableID = "TableOfContents";
doc.TablesOfContents.Add(myRange, ref oTrue, ref oUpperHeadingLevel,
ref oLowerHeadingLevel, ref oMissing, ref oTOCTableID, ref oTrue,
ref oTrue, ref oMissing, ref oTrue, ref oTrue, ref oTrue);

oWord.ActiveDocument.TablesOfContents[1].TabLeader = WdTabLeader.wdTabLeaderDots;
oWord.ActiveDocument.TablesOfContents.Format = 0;

doc.Close(ref oMissing, ref oMissing, ref oMissing);
oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
}
这是我的代码,生成之后第二遍之后,目录会重复添加,不能覆盖,并且子目录不能与根目录对齐!谢谢各位大虾的帮助!
...全文
339 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztszhq 2013-07-17
  • 打赏
  • 举报
回复
在 object x = 0;上加

  for (int i = 1; i <=doc.TablesOfContents.Count; i++)
        {
            doc.TablesOfContents[i].Range.Delete();
        }
strawberry122 2013-07-16
  • 打赏
  • 举报
回复
引用 2 楼 dielianhua526 的回复:
我在使用这段代码的时候老是说“未找到目录项。”是怎么回事呢?
请问2楼解决“未找到目录项”的问题了吗?
strawberry122 2013-07-16
  • 打赏
  • 举报
回复
请问2楼解决“未找到目录项”的问题了吗?
dielianhua526 2012-10-25
  • 打赏
  • 举报
回复
我在使用这段代码的时候老是说“未找到目录项。”是怎么回事呢?
psyke99 2011-12-08
  • 打赏
  • 举报
回复
我的做法是,先创建目录
然后设置实际内容中每个条目的等级
wrdRng.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel1;
结束时 oWord.ActiveDocument.TablesOfContents[1].Update();

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧