栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

本文实例讲述了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 < maxColumnNum; index++)
 {
   grid.Append(new TableGrid());
 }

 // 设置表格边框
 TableProperties tblProp = new TableProperties(
 new TableBorders(
 new TopBorder() { Val = new EnumValue(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#程序设计有所帮助

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号