编辑Word文档时,我们有时会突然想增加一段新内容;而将word文档给他人浏览时,有些信息我们是不想让他人看到的。那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插入新段落及隐藏段落的好方法。

这里使用的是Free Spire.Doc for .NET组件,该组件允许开发人员轻松并灵活地操作Word文档。

  • 向Word文档插入一个新段落的操作步骤

步骤1:新建一个文档并加载现有文档

  1. Document document = new Document();
  2. document.LoadFromFile(@"C:\Users\Administrator\Desktop\向日葵.docx", FileFormat.Docx);

步骤2:插入新段落并设置字体格式

  1. Paragraph paraInserted = document.Sections[].AddParagraph();
  2. TextRange textRange1 = paraInserted.AppendText("向日葵的花语是——太阳、光辉、高傲、忠诚、爱慕、沉默的爱。向日葵又叫望日莲,一个很美的名字");
  3. textRange1.CharacterFormat.TextColor = Color.Blue;
  4. textRange1.CharacterFormat.FontSize = ;
  5. textRange1.CharacterFormat.UnderlineStyle = UnderlineStyle.Dash;

步骤3:保存文档

  1. document.SaveToFile("result.docx", FileFormat.Docx);

以下是程序运行前后的对比图:
                                    运行前

运行后

  • 隐藏段落的操作步骤

当操作Word文档时,我们可以通过Microsoft Word点击字体对话框来隐藏所选择的文本。请通过如下的屏幕截图来查看Microsoft是如何隐藏文本的:

然而,Free Spire.Doc for .NET可以通过设置CharacterFormat.Hidden的属性来隐藏指定文本或整个段落,下面将为大家介绍详细步骤:

步骤1:新建一个文档并加载现有文档

  1. Document doc = new Document();
  2. doc.LoadFromFile(@"C:\Users\Administrator\Desktop\雏菊.docx", FileFormat.Docx);

步骤2:获取Word文档的第一个section和最后一段

  1. Section sec = doc.Sections[];
  2. Paragraph para = sec.Paragraphs[sec.Paragraphs.Count - ];

步骤3:调用for循环语句来获取最后一段的所有TextRange并将CharacterFormat.Hidden的属性设置为true

  1. for (int i = ; i < para.ChildObjects.Count;i++)
  2. {
  3. (para.ChildObjects[i] as TextRange).CharacterFormat.Hidden = true;
  4.  
  5. }

步骤4:保存文档

  1. doc.SaveToFile("result1.docx", FileFormat.Docx);

以下是程序运行前后的对比图:

运行前

运行后

C#完整代码

  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9.  
  10. namespace insert_new_paragraph_and_hide
  11. {
  12. class Program
  13. {
  14. static void Main(string[] args)
  15. { //该部分为插入新段落的代码
  16. Document document = new Document();
  17. document.LoadFromFile(@"C:\Users\Administrator\Desktop\向日葵.docx", FileFormat.Docx);
  18.  
  19. Paragraph paraInserted = document.Sections[].AddParagraph();
  20. TextRange textRange1 = paraInserted.AppendText("向日葵的花语是——太阳、光辉、高傲、忠诚、爱慕、沉默的爱。向日葵又叫望日莲,一个很美的名字");
  21. textRange1.CharacterFormat.TextColor = Color.Blue;
  22. textRange1.CharacterFormat.FontSize = ;
  23. textRange1.CharacterFormat.UnderlineStyle = UnderlineStyle.Dash;
  24. document.SaveToFile("result.docx", FileFormat.Docx);
  25.  
  26. //该部分为隐藏段落的代码
  27. Document doc = new Document();
  28. doc.LoadFromFile(@"C:\Users\Administrator\Desktop\雏菊.docx", FileFormat.Docx);
  29. Section sec = doc.Sections[];
  30. Paragraph para = sec.Paragraphs[sec.Paragraphs.Count - ];
  31. for (int i = ; i < para.ChildObjects.Count;i++)
  32. {
  33. (para.ChildObjects[i] as TextRange).CharacterFormat.Hidden = true;
  34.  
  35. }
  36.  
  37. doc.SaveToFile("result1.docx", FileFormat.Docx);
  38.  
  39. }
  40. }
  41. }

这是我本次要分享的全部内容,感谢您的浏览。

C#如何向word文档插入一个新段落及隐藏段落的更多相关文章

  1. 利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  2. Java 在 Word 文档中使用新文本替换指定文本

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  3. NPOI word文档表格在新的文档中多次使用

    最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用n多次 //获取模版中的表格FileStream stream = new FileStream(strPa ...

  4. Word 文档插入时间日期禁止自动更新

    前些天写了点总结并插入时间和日期,记得勾掉了那个自动更新的,但是刚才打开时发现当时的日期和时间变成现在的了,我就纳闷了,然后我去看那插入日期和时间的那个框,里面确实没有勾选自动更新,于是百度, 百度都 ...

  5. asp.net 将word文档进行编辑并导出一个新的word

    最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...

  6. C# 合并及拆分Word文档

    本文简要分析一下如何如何使用C#简单实现合并和拆分word文档.平时我们在处理多个word文档时,可能会想要将两个文档合并为一个,或者是将某个文档的一部分添加到另一个文档中,有的时候也会想要将文档拆分 ...

  7. 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式

    背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...

  8. asp.net对word文档进行修改 对于使用word文档做模板编辑比较适用

    最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...

  9. java使用freemarker 生成word文档

      java 生成word文档     最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的 ...

随机推荐

  1. mtime,ctime,atime

    mtime,ctime,atime是linux三个主要的变动时间. 这三个时间比较容易理解,但是不容易记忆,也容易搞混. mtime (modification time)  文件内容数据更改时,会更 ...

  2. nodejs第二天之Buffer类

    2.1一个更好的操作二进制数据的类,我们在操作文件或者网络数据的时候,其实操作就是二进制数据,Node为我们提供了一个更加方便去操作这种数据流的类Buffer,它是一个全局的类. 2.2三种调用方式 ...

  3. UNIX 网络编程知识,函数积累

    1: fprintf()#include <stdio.h> int fprintf( FILE *stream, const char *format, ... );fprintf()函 ...

  4. 两个 Long 类型为什么不能直接用==比较

    这要说到==和 equals 的区别了. 1. ==比较的是两个对象在内存中的地址值(栈中的内容). 2.equals 是 java.lang.Object 类的一个方法.equals 比较的是两个对 ...

  5. 关于label和span设置width无效问题解决方法

    转:http://www.jb51.net/web/113507.html 大家可能不知道默认情况下label.span 设置width 是无效的,只有当display:block时,我们所设置的wi ...

  6. 深入浅出数据结构C语言版(4)——表与链表

    在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内 ...

  7. JavaWeb之JDBC

    一.介绍 C#定义了ADO.Net接口来实现对SQLServer.Oracel等数据库的访问,那Java定义了JDBC接口实现对数据库的访问,数据库提供商只要实现这些接口,Java语言就能访问数据库. ...

  8. JS Math.round()方法原理

    请先测试代码: <!doctype html> <html lang="en"> <head> <meta charset="U ...

  9. Win10下 VS2017 安装失败 未能安装包“Microsoft.VisualStudio.AspNet45.Feature,version=15.0.26208.0”

    事情的起因是这样的,前段时间,VS2017发布当天,想在自己的Win10上安装VS2017,然而,由于自己的系统很久没有更新(PS:自己关闭了Windows更新). 安装提示:未能安装包“Micros ...

  10. Struts2的validator和WEB-INF下页面交互以及路径问题

    当我使用短路校验器时(客户端),在页面下方老是出来 FreeMarker template error!然后我就把我的页面都放在了WEB-INF中,结果很多路径都不对了,因为客户端是没有直接访问Str ...