用了一个星期把园子里2016年中有关.net的文章都看了,有些只是大致的看了一下,在看的同时也在记录一些通用的方法。发现有很多对NPOI的文档,主要是操作Excl的方法,却很少有关文档类型的方法。

在项目开发中,一般需要对文档进行操作,但是使用微软提供的插件,需要安装一些程序,并且如果使用wps类的文档软件就无法操作了,第三方插件DocX就可以很好的解决这些文档,结合官方提供的文档,稍作修改,总结如下的一些方法:

1.创建一个具有超链接、图像和表的文档:

        /// <summary>
/// 创建一个具有超链接、图像和表的文档。
/// </summary>
/// <param name="path">文档保存路径</param>
/// <param name="imagePath">加载的图片路径</param>
public static void HyperlinksImagesTables(string path, string imagePath)
{
// 创建一个文档
using (var document = DocX.Create(path))
{
// 在文档中添加超链接。
var link = document.AddHyperlink("link", new Uri("http://www.google.com"));
// 在文档中添加一个表。
var table = document.AddTable(, );
table.Design = TableDesign.ColorfulGridAccent2;
table.Alignment = Alignment.center;
table.Rows[].Cells[].Paragraphs[].Append("");
table.Rows[].Cells[].Paragraphs[].Append("");
table.Rows[].Cells[].Paragraphs[].Append("");
table.Rows[].Cells[].Paragraphs[].Append("");
var newRow = table.InsertRow(table.Rows[]);
newRow.ReplaceText("", "");
// 将图像添加到文档中。
var image = document.AddImage(imagePath);
//创建一个图片(一个自定义视图的图像)。
var picture = image.CreatePicture();
picture.Rotation = ;
picture.SetPictureShape(BasicShapes.cube);
// 在文档中插入一个新段落。
var title = document.InsertParagraph().Append("Test").FontSize().Font(new FontFamily("Comic Sans MS"));
title.Alignment = Alignment.center;
// 在文档中插入一个新段落。
var p1 = document.InsertParagraph();
// 附加内容到段落
p1.AppendLine("This line contains a ").Append("bold").Bold().Append(" word.");
p1.AppendLine("Here is a cool ").AppendHyperlink(link).Append(".");
p1.AppendLine();
p1.AppendLine("Check out this picture ").AppendPicture(picture).Append(" its funky don't you think?");
p1.AppendLine();
p1.AppendLine("Can you check this Table of figures for me?");
p1.AppendLine();
// 在第1段后插入表格。
p1.InsertTableAfterSelf(table);
// 在文档中插入一个新段落。
Paragraph p2 = document.InsertParagraph();
// 附加内容到段落。
p2.AppendLine("Is it correct?");
// 保存当前文档
document.Save();
}
}

2.设置文档的标题和页脚:

        /// <summary>
/// 设置文档的标题和页脚
/// </summary>
/// <param name="path">文档的路径</param>
public static bool HeadersAndFooters(string path)
{
try
{
// 创建新文档
using (var document = DocX.Create(path))
{
// 这个文档添加页眉和页脚。
document.AddHeaders();
document.AddFooters();
// 强制第一个页面有一个不同的头和脚。
document.DifferentFirstPage = true;
// 奇偶页页眉页脚不同
document.DifferentOddAndEvenPages = true;
// 获取本文档的第一个、奇数和甚至是头文件。
Header headerFirst = document.Headers.first;
Header headerOdd = document.Headers.odd;
Header headerEven = document.Headers.even;
// 获取此文档的第一个、奇数和甚至脚注。
Footer footerFirst = document.Footers.first;
Footer footerOdd = document.Footers.odd;
Footer footerEven = document.Footers.even;
// 将一段插入到第一个头。
Paragraph p0 = headerFirst.InsertParagraph();
p0.Append("Hello First Header.").Bold();
// 在奇数头中插入一个段落。
Paragraph p1 = headerOdd.InsertParagraph();
p1.Append("Hello Odd Header.").Bold();
// 插入一个段落到偶数头中。
Paragraph p2 = headerEven.InsertParagraph();
p2.Append("Hello Even Header.").Bold();
// 将一段插入到第一个脚注中。
Paragraph p3 = footerFirst.InsertParagraph();
p3.Append("Hello First Footer.").Bold();
// 在奇数脚注中插入一个段落。
Paragraph p4 = footerOdd.InsertParagraph();
p4.Append("Hello Odd Footer.").Bold();
// 插入一个段落到偶数头中。
Paragraph p5 = footerEven.InsertParagraph();
p5.Append("Hello Even Footer.").Bold();
// 在文档中插入一个段落。
Paragraph p6 = document.InsertParagraph();
p6.AppendLine("Hello First page.");
// 创建一个第二个页面,显示第一个页面有自己的头和脚。
p6.InsertPageBreakAfterSelf();
// 在页面中断后插入一段。
Paragraph p7 = document.InsertParagraph();
p7.AppendLine("Hello Second page.");
// 创建三分之一页面显示,奇偶页不同的页眉和页脚。
p7.InsertPageBreakAfterSelf();
// 在页面中断后插入一段。
Paragraph p8 = document.InsertParagraph();
p8.AppendLine("Hello Third page.");
// 将属性保存入文档
document.Save();
return true;
} }
catch (Exception ex)
{
throw new Exception(ex.Message);
}
//从内存中释放此文档。
}

DocX在C#中的基本操作方法的更多相关文章

  1. DOM中表格的操作方法总结

    DOM中表格的操作方法总结 <table/>元素的方法如下: caption:指向<caption/>元素(如果存在): tBodies:<tbody/>元素的集合 ...

  2. python中字符串的操作方法

    python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细 ...

  3. table不让td中文字溢出操作方法

    table不让td中文字溢出操作方法 table{ width:100px; table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用. */ } t ...

  4. 利用java从docx文档中提取文本内容

    利用java从docx文档中提取文本内容 使用Apache的第三方jar包,地址为https://poi.apache.org/ docx文档内容如图: 目录结构: 每个文件夹的名称为日期加上来源,例 ...

  5. ECMAScript 6中的数组操作方法

    本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性. Note: 我将使用交替使用构造器(constructor)和类(class)两个术语. 类 ...

  6. MVC架构下,使用NPOI读取.DOCX文档中表格的内容

    1.使用NPOI,可以在没有安装office的设备上读wiod.office.2.本文只能读取.docx后缀的文档.3.MVC架构中,上传文件只能使用form表单提交,转到控制器后要依次实现文件上传. ...

  7. js中数组的操作方法

    今天给大家带来一篇有关数组操作方法的文章. 新建数组 方法一:通过new运算符创建一个数组构造函数. var arr = new Array(); 方法二:通过方括号直接创建直接量数组. var ar ...

  8. JavaScript中数组的操作方法总汇

    Array(数组)是JavaScript中最为常用的类型了.ECMAScript中的数组都是数据的有序列表.数组中可以保存任何类型的数据.数组的大小是可以动态调整的,既可以随着数据的添加自动增长以容纳 ...

  9. jquery中DOM的操作方法

    先介绍几个比较简单的方法,不经常用到,做个记录 1. filter() 方法 顾名思义,filter是一个过滤器,如果给定表示 DOM 元素集合的 jQuery 对象,.filter() 方法会用匹配 ...

随机推荐

  1. 浅谈数据库优化方案--表和SQL

    1.数据类型的选择 1.字段最好设置为非空.若字段为char(8),即便是NULL也会现有8个字符的空间. 2.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能, ...

  2. ubuntu中source insight打不开,报错pagefault的解决方法

    在ubuntu中装了source insight用来看代码. 但用了一段时间后,有一天突然就发现打不开了,打开马上会弹出wine的错误,详细信息里面是什么PageFault 0x0000008之类的, ...

  3. RunLoop

    一.什么是RunLoop 从字面意思理解:运行循环.跑圈. 基本作用: 保持程序(应用)的持续运行. 处理程序(APP)中的各种事件(比如:触摸事件.定时事件.Selector事件等) 节省CPU资源 ...

  4. Android+jsp +html 文件上传案例 已测试 成功通过

    我文件上传一直是广大读者一个问题 今天就把成功案例写下 javaweb 网页前段 <%@ page language="java" import="java.uti ...

  5. java 引入自定义字体font后出现的硬盘吃光的问题

    有个需求要用美术字体在图片上写字 用自定义的文字有两个方法: 1. Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, InputStream ...

  6. SQL语句优化(转载)

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  7. 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

    在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...

  8. Module-Zero之发布说明

    返回<Module Zero学习目录> ABP v0.7.6.0 创建组织单元系统. 升级了nuget包. 小修复和改进. 注意: AbpUserManager的构造函数更新了.添加了组织 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (8) -----第二章 实体数据建模基础之继承关系映射TPT

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-8 Table per Type Inheritance 建模 问题 你有这样一 ...

  10. 【Prince2是什么】PRINCE2认证之项目四大管理步骤

    昨天谈到PRINCE2要求项目经理在做项目的时候要考虑四大核心指标(成本.时间.质量.范围)加风险与收益这两个重要要素. 然后PRINCE2基于这几大要素进行了四大管理步骤,分别是: 1.计划 2.授 ...