C#采用OpenXml给Word文档添加表格

2021-04-25 06:46

阅读:559

标签:对象   headers   mil   ebs   summary   main   后台   task   using   

本文实例讲述了C#采用OpenXml给Word文档添加表格的方法,是非常实用的操作技巧。分享给大家供大家参考。具体分析如下:

这里将展示如何使用Openxml向Word添加表格. 代码中表头和数据我们用的同一个TableRow来添加,其实可以通过TableHeader来,其实都一样。后面我们还会进一步给出如何设置单元格样式。表头那一行可以自己通过设置样式来控制

示例代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
namespace AddTableToWord
{
  public class Program
  {
    public static void Main(string[] args)
    {
      List lstData = new List() { new string[] { "1", "2", "3" }, new string[] { "3", "2", "1" } };
      string[] headerArray = new string[] { "A", "B", "C" };
      AddTable("Test.docx", lstData, headerArray);
    }
    /// 
    /// word里面添加table
    /// 
    /// word文件路径
    /// 数据
    /// 表头
    public static void AddTable(string wordPath, List lstData, string[] headerArray)
    {
      using (WordprocessingDocument doc = WordprocessingDocument.Open(wordPath, true))
      {
        TableGrid grid = new TableGrid();
        int maxColumnNum = lstData.Select(x => x.Count()).Max();
        for (int index = 0; index (BorderValues.Single), Size = 2 },
        new BottomBorder() { Val = new EnumValue(BorderValues.Single), Size = 2 },
        new LeftBorder() { Val = new EnumValue(BorderValues.Single), Size = 2 },
        new RightBorder() { Val = new EnumValue(BorderValues.Single), Size = 2 },
        new InsideHorizontalBorder() { Val = new EnumValue(BorderValues.Single), Size = 2 },
        new InsideVerticalBorder() { Val = new EnumValue(BorderValues.Single), Size = 2 }
        )
        );
        Table table = new Table();
        table.Append(tblProp);
        // 添加表头. 其实有TableHeader对象的,小弟用不来.
        TableRow headerRow = new TableRow();
        foreach (string headerStr in headerArray)
        {
          TableCell cell = new TableCell();
          cell.Append(new Paragraph(new Run(new Text(headerStr))));
          headerRow.Append(cell);
        }
        table.Append(headerRow);
        // 添加数据
        foreach (string[] rowArray in lstData)
        {
          TableRow row = new TableRow();
          foreach (string strCell in rowArray)
          {
            TableCell cell = new TableCell();
            cell.Append(new Paragraph(new Run(new Text(strCell))));
            row.Append(cell);
          }
          table.Append(row);
        }
        doc.MainDocumentPart.Document.Body.Append(new Paragraph(new Run(table)));
      }
    }
  }
}

执行呈现结果如下:

技术分享图片

希望本文所述对大家的C#程序设计有所帮助

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#采用OpenXml给Word文档添加表格

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23474.html




相关内容

技术分享图片
C#通过属性名称获取(读取)属性值的方法
技术分享图片
C#êμ??′????÷1|?üμ?ComboBox
技术分享图片
C# 后台处理图片的几种方法
技术分享图片
C#代码操作XML进行增、删、改操作

技术分享图片
区分WCF与WebService的异同、优势
技术分享图片
C#实现给图片加水印的方法
技术分享图片
C#连接数据库和更新数据库的方法
技术分享图片
使用aspose.word 第三方的插件实现导出word

C#采用OpenXml给Word文档添加表格

标签:对象   headers   mil   ebs   summary   main   后台   task   using   

原文地址:http://www.cnblogs.com/paobuke/p/7920005.html


评论


亲,登录后才可以留言!