API导出word方法中DocumentBuilder常见基础用法详情(其中一部分含有效果图)【纯基础实现高级勿看】

利用API接口调用方法实现导出表格word并从数据库中调用数据赋值到表格中

                                                           

下面是我刚学习遇到的一些常见知识点代码(优先展现一下表格的结构)

  先观看一下初始化的方法 (主要看代码内容的意思)

 public bool ReportYjForm(Dictionary<string, string> dic, Stream stream)
        {
                    //创建一个模板 就是随便新建一个docx文件
                string rote = @"C:\Users\DN\Desktop\word\";   //自己docx文件地址
                string orginPath = rote + "现场问题.docx";     //文件名字
                       
                   //需要利用builder去实现表格 实例化以下两行代码
                Document doc = new Document(orginPath);      //参数是文件地址
                DocumentBuilder builder = new DocumentBuilder(doc);  

                 //如果报错红线查一下是否安装nuget包 Aspose.words 
                 //没有安装则装一下


}

接着以上方法,下面就遇到自己常见的知识点,创建行列,合并单元格,设置宽度等

    //表格基本就是行和列
    //但是在你创建的时候只有一个一个表格的创建 看下面这样行代码
        builder.InsertCell();  //创建了一个表格
    //如果直接继续创建的话 比如三个表格
        builder.InsertCell();
        builder.InsertCell();//又添加了两个

     //这时候效果就是三个表格并列  可以理解成第一行有三个格子,如果想到第二行的话
        builder.EndRow(); //结束 endrow 方法名字中就体现了end
      //d第一行结束后紧接着第二行 则就继续添加
         builder.InsertCell();
        builder.InsertCell();
        builder.InsertCell();
     //这时候就形成了两行三列的表格

上述代码已经形成了一个两行三列的表格,这个理解了就准备给表格中添加内容

非常简单每次添加一格的时候 调用方法      builder.Write(“书写内容”);

请看主要代码

 string rote = @"C:\Users\DN\Desktop\word\";
                string orginPath = rote + "现场问题.docx";
                Document doc = new Document(orginPath);
                DocumentBuilder builder = new DocumentBuilder(doc);
 builder.InsertCell();
 builder.Write("我是第一行第一格");
 builder.InsertCell();
 builder.Write("我是第一行第二格");
 builder.InsertCell();
 builder.Write("我是第一行第三格");
 builder.EndRow();
 builder.InsertCell();
 builder.Write("我是第二行第一格");
 builder.InsertCell();
 builder.Write("我是第二行第二格");
 builder.InsertCell();
 builder.Write("我是第二行第三格");

 效果图                           

我是第一行第一格我是第一行第二格我是第一行第三格
我是第二行第一格我是第二行第二格我是第二行第三格

然后就是常见的合并单元格  

               VerticalMerge单词意思是:垂直合并,纵向合并

               HorizontalMerge意思是:横向合并

  如果是新手不要想太多直接拿来用意思很明显了,其次就是后面的参数CellMerge.后面跟的有三个分别是:None(不合并,不用动),First(合并这一格),Previous(接应需要合并的地方);"下面细讲"

                        builder.CellFormat.VerticalMerge = CellMerge.None;  //纵向不合并
                        builder.CellFormat.HorizontalMerge = CellMerge.None; //横向不合并

这两行就是无论横向还是纵向都不合并。如果都不合并的话 还用不用写了呢,肯定不用写了,但是作为新手我觉得找到代码的兴趣就写上去,更直观,给自己内心找个理由更规范。

进入正题:假设我只需要合并第一列的话怎么实现(对比上面表格的代码)

 builder.InsertCell();

//既然选择合并第一列,就是合并第一行第一格和第二行第一格 添加条件合并

builder.CellFormat.VerticalMerge = CellMerge.First;  //纵向合并
 builder.CellFormat.HorizontalMerge = CellMerge.None; //横向不合并

 builder.Write("我是第一行第一格")

 builder.InsertCell();
 builder.Write("我是第一行第二格");
 builder.InsertCell();
 builder.Write("我是第一行第三格");
 builder.EndRow();
 builder.InsertCell();

//既然选择合并第一列,就是合并第一行第一格和第二行第一格

builder.CellFormat.VerticalMerge = CellMerge.Previous;  //纵向合并
 builder.CellFormat.HorizontalMerge = CellMerge.None; //横向不合并

//解释一下,因为本格是需要合并给第一行第一格的所以需要贡献出去,就用Previous
 builder.Write("我是第二行第一格");
 builder.InsertCell();
 builder.Write("我是第二行第二格");
 builder.InsertCell();
 builder.Write("我是第二行第三格");

 就是这个合并,可能不太清楚,感觉没必要填颜色。

到这里就合并好了,如果能够耐心看到这里非常好,里面看似混乱其实东西就那两句话,我想就合并这一个纵向的列就可以了,假设这个可以完成,那么剩下的合并横向,还有纵向横向交错,这个我建议创建前先自己手动创建表格,手动思路清楚之后带入代码,非常方便的技巧 。

写到这里有点累了,如果有兴趣有基础的可以试试,不过感觉应该新手还是一头雾水。我下个文章写一下超详细的从API调用到方法的实现。目前我就写了一下合并列的单元格,但是呢代码这个需要自己的摸索,我只是看不惯过度让自己领悟的,放了一堆代码附带一个效果图我真不知道怎么去理解,我是一个一个试出来的,真正新手用的时候谁那么有时间一个一个试出来。后续还会有API爬虫的知识,可能会稍微不容易理解但是逻辑是非常清晰的。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值