当前位置:编程学习 > C#/ASP.NET >>

C# 给word文档添加目录

 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);
        }
这是我的代码,生成之后第二遍之后,目录会重复添加,不能覆盖,并且子目录不能与根目录对齐!谢谢各位大虾的帮助! --------------------编程问答-------------------- 我的做法是,先创建目录
然后设置实际内容中每个条目的等级 
wrdRng.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel1;
结束时 oWord.ActiveDocument.TablesOfContents[1].Update(); --------------------编程问答-------------------- 我在使用这段代码的时候老是说“未找到目录项。”是怎么回事呢? --------------------编程问答-------------------- 请问2楼解决“未找到目录项”的问题了吗? --------------------编程问答--------------------
引用 2 楼 dielianhua526 的回复:
我在使用这段代码的时候老是说“未找到目录项。”是怎么回事呢?


请问2楼解决“未找到目录项”的问题了吗?  --------------------编程问答-------------------- 在 object x = 0;上加

  for (int i = 1; i <=doc.TablesOfContents.Count; i++)
        {
            doc.TablesOfContents[i].Range.Delete();
        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,