C#如何控制word某段文字隐藏或显示
发布网友
发布时间:2022-04-24 10:38
我来回答
共3个回答
热心网友
时间:2022-04-24 12:08
三种方法:
一是直接读取.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) //对于根节点以外的子节点做循环,以下同理
{
//对元素处理~~~
}
热心网友
时间:2022-04-24 13: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");
}
}
}
调试运行程序后,生成文档,下图是设置文档段落隐藏后的效果对比: