C#如何向word文档插入一个新段落及隐藏段落
编辑Word文档时,我们有时会突然想增加一段新内容;而将word文档给他人浏览时,有些信息我们是不想让他人看到的。那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插入新段落及隐藏段落的好方法。
这里使用的是Free Spire.Doc for .NET组件,该组件允许开发人员轻松并灵活地操作Word文档。
- 向Word文档插入一个新段落的操作步骤
步骤1:新建一个文档并加载现有文档
- Document document = new Document();
- document.LoadFromFile(@"C:\Users\Administrator\Desktop\向日葵.docx", FileFormat.Docx);
步骤2:插入新段落并设置字体格式
- Paragraph paraInserted = document.Sections[].AddParagraph();
- TextRange textRange1 = paraInserted.AppendText("向日葵的花语是——太阳、光辉、高傲、忠诚、爱慕、沉默的爱。向日葵又叫望日莲,一个很美的名字");
- textRange1.CharacterFormat.TextColor = Color.Blue;
- textRange1.CharacterFormat.FontSize = ;
- textRange1.CharacterFormat.UnderlineStyle = UnderlineStyle.Dash;
步骤3:保存文档
- document.SaveToFile("result.docx", FileFormat.Docx);
以下是程序运行前后的对比图:
运行前
运行后
- 隐藏段落的操作步骤
当操作Word文档时,我们可以通过Microsoft Word点击字体对话框来隐藏所选择的文本。请通过如下的屏幕截图来查看Microsoft是如何隐藏文本的:
然而,Free Spire.Doc for .NET可以通过设置CharacterFormat.Hidden的属性来隐藏指定文本或整个段落,下面将为大家介绍详细步骤:
步骤1:新建一个文档并加载现有文档
- Document doc = new Document();
- doc.LoadFromFile(@"C:\Users\Administrator\Desktop\雏菊.docx", FileFormat.Docx);
步骤2:获取Word文档的第一个section和最后一段
- Section sec = doc.Sections[];
- Paragraph para = sec.Paragraphs[sec.Paragraphs.Count - ];
步骤3:调用for循环语句来获取最后一段的所有TextRange并将CharacterFormat.Hidden的属性设置为true
- for (int i = ; i < para.ChildObjects.Count;i++)
- {
- (para.ChildObjects[i] as TextRange).CharacterFormat.Hidden = true;
- }
步骤4:保存文档
- doc.SaveToFile("result1.docx", FileFormat.Docx);
以下是程序运行前后的对比图:
运行前
运行后
C#完整代码
- using Spire.Doc;
- using Spire.Doc.Documents;
- using Spire.Doc.Fields;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- namespace insert_new_paragraph_and_hide
- {
- class Program
- {
- static void Main(string[] args)
- { //该部分为插入新段落的代码
- Document document = new Document();
- document.LoadFromFile(@"C:\Users\Administrator\Desktop\向日葵.docx", FileFormat.Docx);
- Paragraph paraInserted = document.Sections[].AddParagraph();
- TextRange textRange1 = paraInserted.AppendText("向日葵的花语是——太阳、光辉、高傲、忠诚、爱慕、沉默的爱。向日葵又叫望日莲,一个很美的名字");
- textRange1.CharacterFormat.TextColor = Color.Blue;
- textRange1.CharacterFormat.FontSize = ;
- textRange1.CharacterFormat.UnderlineStyle = UnderlineStyle.Dash;
- document.SaveToFile("result.docx", FileFormat.Docx);
- //该部分为隐藏段落的代码
- Document doc = new Document();
- doc.LoadFromFile(@"C:\Users\Administrator\Desktop\雏菊.docx", FileFormat.Docx);
- Section sec = doc.Sections[];
- Paragraph para = sec.Paragraphs[sec.Paragraphs.Count - ];
- for (int i = ; i < para.ChildObjects.Count;i++)
- {
- (para.ChildObjects[i] as TextRange).CharacterFormat.Hidden = true;
- }
- doc.SaveToFile("result1.docx", FileFormat.Docx);
- }
- }
- }
这是我本次要分享的全部内容,感谢您的浏览。
C#如何向word文档插入一个新段落及隐藏段落的更多相关文章
- 利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等
前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...
- Java 在 Word 文档中使用新文本替换指定文本
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...
- NPOI word文档表格在新的文档中多次使用
最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用n多次 //获取模版中的表格FileStream stream = new FileStream(strPa ...
- Word 文档插入时间日期禁止自动更新
前些天写了点总结并插入时间和日期,记得勾掉了那个自动更新的,但是刚才打开时发现当时的日期和时间变成现在的了,我就纳闷了,然后我去看那插入日期和时间的那个框,里面确实没有勾选自动更新,于是百度, 百度都 ...
- asp.net 将word文档进行编辑并导出一个新的word
最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...
- C# 合并及拆分Word文档
本文简要分析一下如何如何使用C#简单实现合并和拆分word文档.平时我们在处理多个word文档时,可能会想要将两个文档合并为一个,或者是将某个文档的一部分添加到另一个文档中,有的时候也会想要将文档拆分 ...
- 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式
背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...
- asp.net对word文档进行修改 对于使用word文档做模板编辑比较适用
最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...
- java使用freemarker 生成word文档
java 生成word文档 最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的 ...
随机推荐
- mtime,ctime,atime
mtime,ctime,atime是linux三个主要的变动时间. 这三个时间比较容易理解,但是不容易记忆,也容易搞混. mtime (modification time) 文件内容数据更改时,会更 ...
- nodejs第二天之Buffer类
2.1一个更好的操作二进制数据的类,我们在操作文件或者网络数据的时候,其实操作就是二进制数据,Node为我们提供了一个更加方便去操作这种数据流的类Buffer,它是一个全局的类. 2.2三种调用方式 ...
- UNIX 网络编程知识,函数积累
1: fprintf()#include <stdio.h> int fprintf( FILE *stream, const char *format, ... );fprintf()函 ...
- 两个 Long 类型为什么不能直接用==比较
这要说到==和 equals 的区别了. 1. ==比较的是两个对象在内存中的地址值(栈中的内容). 2.equals 是 java.lang.Object 类的一个方法.equals 比较的是两个对 ...
- 关于label和span设置width无效问题解决方法
转:http://www.jb51.net/web/113507.html 大家可能不知道默认情况下label.span 设置width 是无效的,只有当display:block时,我们所设置的wi ...
- 深入浅出数据结构C语言版(4)——表与链表
在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内 ...
- JavaWeb之JDBC
一.介绍 C#定义了ADO.Net接口来实现对SQLServer.Oracel等数据库的访问,那Java定义了JDBC接口实现对数据库的访问,数据库提供商只要实现这些接口,Java语言就能访问数据库. ...
- JS Math.round()方法原理
请先测试代码: <!doctype html> <html lang="en"> <head> <meta charset="U ...
- Win10下 VS2017 安装失败 未能安装包“Microsoft.VisualStudio.AspNet45.Feature,version=15.0.26208.0”
事情的起因是这样的,前段时间,VS2017发布当天,想在自己的Win10上安装VS2017,然而,由于自己的系统很久没有更新(PS:自己关闭了Windows更新). 安装提示:未能安装包“Micros ...
- Struts2的validator和WEB-INF下页面交互以及路径问题
当我使用短路校验器时(客户端),在页面下方老是出来 FreeMarker template error!然后我就把我的页面都放在了WEB-INF中,结果很多路径都不对了,因为客户端是没有直接访问Str ...