DocX在C#中的基本操作方法

用了一个星期把园子里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(2, 2);
                table.Design = TableDesign.ColorfulGridAccent2;
                table.Alignment = Alignment.center;
                table.Rows[0].Cells[0].Paragraphs[0].Append("1");
                table.Rows[0].Cells[1].Paragraphs[0].Append("2");
                table.Rows[1].Cells[0].Paragraphs[0].Append("3");
                table.Rows[1].Cells[1].Paragraphs[0].Append("4");
                var newRow = table.InsertRow(table.Rows[1]);
                newRow.ReplaceText("4", "5");
                // 将图像添加到文档中。
                var image = document.AddImage(imagePath);
                //创建一个图片(一个自定义视图的图像)。
                var picture = image.CreatePicture();
                picture.Rotation = 10;
                picture.SetPictureShape(BasicShapes.cube);
                // 在文档中插入一个新段落。
                var title = document.InsertParagraph().Append("Test").FontSize(20).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);
            }
            //从内存中释放此文档。
        }
时间: 2025-01-05 14:16:15

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

DOM中表格的操作方法总结

DOM中表格的操作方法总结 <table/>元素的方法如下: caption:指向<caption/>元素(如果存在): tBodies:<tbody/>元素的集合: tFoot:指向<tfoot/>元素(如果存在): tHead:指向<thead/>元素(如果存在): rows:表格中所有行的集合: createTHead():创建<thead/>元素并将其放入表格: createTFoot():创建<tfoot/>元素

python中字符串的操作方法

python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细介绍了关于python中字符串的大小写转换.isXXX判断.填充.子串搜索.替换.分割.join以及修剪:strip.lstrip和rstrip的相关内容,需要的朋友可以参考下 前言 python中字符串对象提供了很多方法来操作字符串,功能相当丰富.?123 print(dir(str)) [...

selenium+python 自动化中界面滚动条操作方法

虽然webdriver提供了操作浏览器的前进和后退的方法,但对于浏览器滚动条并没有提供相应的操作方法,以下使用的方法: 借助JavaScript来控制浏览器的滚动条,webdriver提供了execute_script()方法来执行JavaScript代码. 其实我们操作滚动条一般使用的场景:注册时的法律条文的阅读: <!--window.scrollTo(左边距,右边距):--> window.srollTo(0,650); window.scrollTo()方法用于设置浏览器窗口滚动条的水

js中数组的操作方法

concat()方法基于当前数组中的所有项创建一个新数组.具体做法是先复制当前数组,然后将接收到的参数(参数可以是值,一个数组,多个数组,但是最终添加到数组中的都是数值)添加到新数组的末尾. slice()方法基于当前数组中的一个或多个项创建新数组.此方法接受一个或两个参数,当只有一个参数时,返回从该参数指定位置到数组末尾的所有项:有两个参数时,返回起始和结束位置之间的项(但不包括结束位置的项). 如果slice()方法的参数中有一个负数,则用数组的长度加上该负数来确定相应的位置,例如,在一个包

iOS 中的延时操作方法

1. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //        要执行的代码 }); //NSEC_PER_SEC表示的是秒数,它还提供了NSEC_PER_MSEC表示毫秒. //上面这句dispatch_after的真正含义是在2秒后把任务添加进队列中,并不是表示在2秒后执行,大部分情况该函数能达到我们的预期,只有在对

Java中的this操作方法与字段

public class Parent { public void init() { System.out.println("1 init parent"); this.demo(); } public void demo() { System.out.println("2 demo parent"); } } public class Son extends Parent { public void init(){ super.init(); System.out

jquery中DOM的操作方法

先介绍几个比较简单的方法,不经常用到,做个记录 1. filter() 方法 顾名思义,filter是一个过滤器,如果给定表示 DOM 元素集合的 jQuery 对象,.filter() 方法会用匹配元素的子集构造一个新的 jQuery 对象.所使用的选择器会测试每个元素:所有匹配该选择器的元素都会包含在结果中. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <style> 5 div { width:60px; height:

javascript中数组的操作方法

js中的数组也是对象数据类型的,也是由属性名和属性值组成,数组的属性名就是数组中的每一项对应的索引值,数组的属性值就是我们数组中写的每一项的值. 数组中的一些方法 1.起始位置增加和删除 push:向数组的尾部添加新的元素,返回添加后数组的长度,原有数组改变. pop:删除数组尾部的元素,返回删除的元素,原有数组改变. unshift:向数组头部添加元素,返回添加后的数组的长度,原有数组改变. shift:删除数组的第一个元素,返回删除的内容,原有数组改变 2.concat 第一个作用  当参数

css属性中常见的操作方法

css样式之属性操作 一.文本属性 1.text-align:cnter 文本居中2.line heigth 垂直居中 :行高,和高度对应3.设置图片与文本的距离:vertical-align4.text-decoration:none 去掉超链接下划线5.要是给a标签修改颜色的时候,就定到a标签上,用继承有时候是搞不定的因为继承的级别是很低的,如果a标签设置了样式,是不会继承父亲的6.首行缩进:text-indent:30px7.font-style:oblique 或者italic....(