Spire.Doc for .NET 笔记

1、Spire.Doc for .NET是什么?

      Spire.Doc for .NET 是一个专门为开发人员设计的能在任意的 .NET 平台上快速和高质量的创建、读取、写入、转换和打印 word 文档文件的 .NET 组件。当然、作为一个独立的.NET组件、不再需要从电脑上安装Microsoft Word(这方面就有点类似于NOPI组件了)。而且,它可以将Microsoft Word文档创建功能集成到开发者的任何.NET应用程序。

      这款组件免费版下载链接地址:Spire.Doc for .NET To Download

2、主要功能点:

      支持丰富的Word文档功能:

      Spire.Doc的一个常用的功能是动态创建一个完整的Word文档几乎支持所有Word文档元素,它们主要包括页面、节段、页眉、页脚、段落、列表、表格、文本、字段、超链接、书签、注解、图片、样式、背景设置、打印功能、文档设置和保护。同时,绘图对象包括形状,文本框、图片和OLE对象,也支持控件

      轻松处理现有Word文档:

      Spire.Doc能帮助开发人员处理现有的Word文档,自带搜索、替换、对齐、分页符、填充字段、文档链接、复制、打印以及复杂和深层的嵌套邮件合并功能

      高质量的文档转换:

      Spire.Doc能帮助用户将Doc/Docx格式Word文件保存在流中,另存为网页响应,还完成Doc/Docx格式Word文件与XML、RTF、EMF、TXT、XPS、EPUB、HTML等格式文件之间的相互转换。同时,它也支持Doc/Docx格式Word文件转换为PDF文件HTML文件转换为图像文件

      独立组件,无需安装Microsoft Office:

      Spire.Doc是一个完全独立的**.NET Word类库**,无需安装Microsoft Office,程序员便可以在任意.NET平台对Word文件进行处理,并且它与其他.NET应用程序兼容

3、示例:
      以下代码将实现Word页眉的设置、文档内容的插入、以及Word表格的插入。
      当然使用的时候需要引入以下几个库:

using System;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

Program Code
Part(1):

        /// <summary>
        /// 初始化表格内容数据
        /// @author 王伟
        /// @date 2019-08-09 
        /// @weather 阴
        /// </summary>
        /// <returns></returns>
        private static string[][] InitData()
        {
            string[][] data = {
                new string[]{"参与者1","男","12","猪","性格比较内向!" },
                new string[]{"参与者2","女","15","狗","无!" },
                new string[]{"参与者3", "女", "48","猪","可以!" },
                new string[]{"参与者4", "女", "38", "猴", "维纳斯达!" },
                new string[]{"参与者5","男","28", "狗", "按时发达丰富的 !" },
                new string[]{"参与者6","男","40","猪","性格比爱疯舞较内向!" },
                new string[]{"参与者7", "女", "61", "狗", "阿发!" },
                new string[]{"参与者8", "女", "62","猪","阿达!" },
                new string[]{"参与者9","男","12", "猴", "犬瘟热无若!" },
                new string[]{"参与者10","男","63","猪","去玩儿群无!" },
                new string[]{"参与者11", "女", "64", "狗", "去玩儿热腾腾!" },
                new string[]{"参与者12","男","65", "猴", "外人田!" },
                new string[]{"参与者13","男","56","猪","我认为二!" },
                new string[]{"参与者14", "女", "76","猪","玩儿翁!" },
                new string[]{"参与者15","男","36","猪","特人体各!" },
                new string[]{"参与者16","男","54", "狗", "切尔奇翁群!" },
                new string[]{"参与者17","男","53","猪","日期二群群!" },
                new string[]{"参与者18","男","35", "猴", "玩儿玩儿!" },
                new string[]{"参与者19", "女", "66", "狗", "维吾尔文!" },
                new string[]{"参与者20","男","23","猪","额外任务图!" },
                new string[]{"参与者21","男","56", "猴", "玩儿玩儿无!" },
                new string[]{"参与者22","男","41","猪","玩儿玩儿无若!" },
                new string[]{"参与者23", "女", "42", "狗", "玩儿翁扔!" },
                new string[]{"参与者24","男","43", "狗", "而且我爸突然!" },
                new string[]{"参与者25","男","44","猪","委任为v!" },
                new string[]{"参与者26","男","55", "猴", "玩儿翁!" },
                new string[]{"参与者27", "女", "45","猪","手打黄金分割和热!" },
                new string[]{"参与者28","男","27", "狗", "围绕多所无!" },
                new string[]{"参与者29", "女", "26","猪","玩儿翁防守打法!" },
                new string[]{"参与者30","男","34", "猴", "性格比较内向!" },
                new string[]{"参与者31","男","56","猪","胜多负少的服务!" },
                new string[]{"参与者32", "女", "20","猪","防守打法试试!" },
                new string[]{"参与者33","男","25", "狗", "沙发斯蒂芬!" },
                new string[]{"参与者34","男","32", "猴", "让他也发!" },
                new string[]{"参与者35", "女", "33","猪","师范生的任务!" },
                new string[]{"参与者36","男","21","猴","维特热水!" },
                new string[]{"参与者37","男","26","猪","瑞特女!" },
                new string[]{"参与者38", "女", "23","猪","对方水电费而!" },
                new string[]{"参与者39","男","14", "狗", "韦尔奇二群!" },
            };
            return data;
        }

Part(2):

        /// <summary>
        /// 给Word插入表格及数据
        /// @author 王伟
        /// @date 2019-08-09
        /// @weather 阴
        /// </summary>
        /// <param name="section"></param>
        public static void writeTable(Section section)
        {
            string[][] data = InitData();

            //向word中插入一个表格
            Table table = section.AddTable();
            table.ResetCells(data.Length + 1, header.Length);//设置表格的行数和列数

            //设置表格的上边框
            table.TableFormat.Borders.Top.BorderType = BorderStyle.Single;
            table.TableFormat.Borders.Top.LineWidth = 0.1F;
            table.TableFormat.Borders.Top.Color = Color.Black;

            //设置表格的下边框
            table.TableFormat.Borders.Bottom.BorderType = BorderStyle.Single;
            table.TableFormat.Borders.Bottom.LineWidth = 0.1F;
            table.TableFormat.Borders.Bottom.Color = Color.Black;

            // ***************** 表格标题  *************************
            TableRow row = table.Rows[0];
            row.IsHeader = true;
            row.Height = 20;    //unit: point, 1point = 0.3528 mm
            row.HeightType = TableRowHeightType.Exactly;
            row.RowFormat.BackColor = Color.Purple;//给表头添加背景颜色
            for (int i = 0; i < header.Length; i++)
            {
                row.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                Paragraph p = row.Cells[i].AddParagraph();
                p.Format.HorizontalAlignment = HorizontalAlignment.Left;//居左显示
                TextRange txtRange = p.AppendText(header[i]);
                txtRange.CharacterFormat.Bold = true;//加粗
                txtRange.CharacterFormat.TextColor = Color.White;//表头的字体颜色变为白色
            }

            for (int r = 0; r < data.Length; r++)
            {
                TableRow dataRow = table.Rows[r + 1];
                dataRow.Height = 20;
                dataRow.HeightType = TableRowHeightType.Exactly;
                dataRow.RowFormat.BackColor = Color.Empty;
                for (int c = 0; c < data[r].Length; c++)
                {
                    if (c == 0)
                    {
                        dataRow.Cells[c].CellFormat.BackColor = Color.LightGray;
                    }
                    dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                    dataRow.Cells[c].AddParagraph().AppendText(data[r][c]);
                }
            }
        }

Part(3):

        /// <summary>
        /// 读取空模板、写入数据
        /// @author 王伟
        /// @date 2019-08-09
        /// @weather 阴
        /// </summary>
        public static void writeWord()
        {
            document.LoadFromFile("../../Files/Templete/template.docx");//加载模板
            Section section = document.Sections[0];//获取第一个文档节
                                                   //定义页眉信息(左边放一个图片、右边放一个网址)
            HeaderFooter header = section.HeadersFooters.Header;
            Paragraph p_header = header.AddParagraph();
            DocPicture docImg = p_header.AppendPicture(Image.FromFile("../../Files/image/header.jpg"));//给页眉添加一个图片
            docImg.Height = 18.5F;//设置图片高度
            docImg.Width = 86.1F;//设置图片宽度
            p_header.AppendText("                                                                                            网址 http://www.baidu.com");//添加右边的页眉内容


            //标题
            Paragraph p_Title = section.AddParagraph();
            TextRange p_txt = p_Title.AppendText("测试数据表格录入");
            p_txt.CharacterFormat.FontName = "Console";
            p_txt.CharacterFormat.FontSize = 16.0F;//设置字体大小
            p_txt.CharacterFormat.Position = 6F;//设置标题与下方正文的行间距
            p_txt.CharacterFormat.StylisticSetType = StylisticSetType.StylisticSet01;
            p_Title.Format.HorizontalAlignment = HorizontalAlignment.Center;//标题居中显示

            //正文内容 
            Paragraph p_Content = section.AddParagraph();
            TextRange pc_txt = p_Content.AppendText("    这里可以写一些介绍的文字啥的、反正只要你想写啥就写啥了!我这里就随便瞎写一些东西了。肚子里面的墨水儿不多,哈哈哈!");
            pc_txt.CharacterFormat.FontSize = 8.0F;
            pc_txt.CharacterFormat.Position = 2F;//设置标题与下方正文的行间距

            writeTable(section);

            document.SaveToFile("../../Files/download/" + DateTime.Now.Ticks + ".docx");
        }

Part(4):

    public static class SpireDocUitl
    {
        private static Document document = new Document();//实例化文档节点类
        private static string[] header = { "姓名", "性别", "年龄", "生肖", "备注" };//表头数据
        /// <summary>
        /// 读取空模板、写入数据
        /// @author 王伟
        /// @date 2019-08-09
        /// @weather 阴
        /// </summary>
        public static void writeWord()
        {
            ......
        }
        /// <summary>
        /// 给Word插入表格及数据
        /// @author 王伟
        /// @date 2019-08-09
        /// @weather 阴
        /// </summary>
        /// <param name="section"></param>
        public static void writeTable(Section section)
        {
           ......
        }
        /// <summary>
        /// 初始化表格内容数据
        /// @author 王伟
        /// @date 2019-08-09 
        /// @weather 阴
        /// </summary>
        /// <returns></returns>
        private static string[][] InitData()
        {
            ......
        }
    }

最终效果截图:
在这里插入图片描述
这款组件的介绍到这里就先暂时告一段落了!再见。

只要是有意义的事,再晚去做还是有意义的。 ——《返老还童》

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值