日期:2014-05-18  浏览次数:21117 次

C#操作Word生成目录
OperateWord ow = new OperateWord();
Microsoft.Office.Interop.Word.ApplicationClass ss = ow.WordApplication;
            AddContent(ref ss);
			
 void AddContent(ref   Microsoft.Office.Interop.Word.ApplicationClass app)
        {

            Object oMissing = System.Reflection.Missing.Value;
            Object oTrue = true;
            Object oFalse = false;
            Object oUpperHeadingLevel = "1";
            Object oLowerHeadingLevel = "3";
            Object oTOCTableID = "TableOfContents";

            app.Selection.Start = 0;

            app.Selection.End = 0;//将光标移动到文档开始位置

            object beginLevel = 2;//目录开始深度

            object endLevel = 2;//目录结束深度

            object rightAlignPageNumber = true;// 指定页码右对其

            /*
             * Range
             * UserHeadingStyles 使用heading风格
             * UpperHeadingLevel 增加heading级别
             * LowerHeadingLevel 减小heading级别
             * UserFields 使用fields
             * Tableid tableid
             * RightAlignPageNumbers 右对齐页数
             * IncludePageNumbers 包含页数
             * Addedstyles 添加风格
             * UserHyperlinks 使用超链接
             * HidePageNumbersInweb 隐藏页数
             * UseOutLineLevels 使用提纲级别
             * TableOfContents 内容表
             */
            app.Application.ActiveDocument.TablesOfContents.Add(app.Selection.Range, ref oTrue, ref oUpperHeadingLevel,
                ref oLowerHeadingLevel, ref oMissing, ref oTOCTableID, ref oTrue,
                ref oTrue, ref oMissing, ref oTrue, ref oTrue, ref oTrue);//添加目录

            //写入目录
        }

?

?参考1:

private void button1_Click(object sender, EventArgs e)
        { 
            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(); 

            oWord.Visible = true;
            object fileName = this.textBox1.Text;
            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);
            //---------------------------------------------
            //Object oSaveAsFile = fileName;
            //doc.SaveAs(ref oSaveAsFile, 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);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog fd = new OpenFileDialog();
            if (fd.ShowDialog() == DialogResult.OK)
            {
                this.textBox1.Text = fd.FileName;
            }
        }

参考2: