C#如何控制word某段文字隐藏或显示

如题所述

三种方法:
一是直接读取.doc文档,可以将所有的文本读入到字符串中在做相关处理:

C# code?

using System.IO;

string temp = System.IO.File.OpenText(@“D:\word.doc”).ReadToEnd();//读取doc文档

二是通过调用.NET对于Office的COM组件来做:

C# code?

using Microsoft.Office.Interop.Word;

Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();//打开word程序
Microsoft.Office.Interop.Word.Document doc = null;//实例化一个新的word文档

object unknow = Type.Missing;
app.Visible = true;
doc = app.Documents.Open(ref fileName,
ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,
ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,
ref unknow,ref unknow,ref unknow,ref unknow,ref unknow);

string temp = doc.Content.Text.Trim();//将全篇内容存入字符串中,也可以调用别的方法,具体可以查询MSDN...

三是将Word转为XML,可以根据要求提取内容,包括标题,目录等等~~

C# code?

using System.XML;

XmlDocument doc = new XmlDocument();
doc.Load(filePath); //载入XML文档

XmlElement root = doc.DocumentElement; //定义载入XML的根节点

foreach(XmlNode xn1 in root.ChildNodes) //对于根节点以外的子节点做循环,以下同理
{
//对元素处理~~~
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-26

下面的demo用的Spire.Doc.dll来实现的,你参考使用:

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace HidePara_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Document类对象,并加载测试文件
             Document doc = new Document();
             doc.LoadFromFile("test.docx");

           //获取第5段
            Section sec = doc.Sections[0];
            Paragraph para = sec.Paragraphs[4];

           //遍历段落中的所有子对象,设置隐藏属性或显示
            foreach (var childObject in para.ChildObjects)
            {
                //隐藏段落
                (childObject as TextRange).CharacterFormat.Hidden = true ;
                //显示段落
                (childObject as TextRange).CharacterFormat.Hidden = false ;
            }
            //保存并打开文件
             doc.SaveToFile("result.docx", FileFormat.Docx);
             System.Diagnostics.Process.Start("result.docx");
        }
    }
}

调试运行程序后,生成文档,下图是设置文档段落隐藏后的效果对比:

相似回答