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<string[]> lstData = new List<string[]>() { new string[] { "1", "2", "3" }, new string[] { "3", "2", "1" } };
      string[] headerArray = new string[] { "A", "B", "C" };
      AddTable("Test.docx", lstData, headerArray);
    }
    /// <summary>
    /// word里面添加table
    /// </summary>
    /// <param name="wordPath">word文件路径</param>
    /// <param name="lstData">数据</param>
    /// <param name="headerArray">表头</param>
    public static void AddTable(string wordPath, List<string[]> 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>(BorderValues.Single), Size = 2 },
        new BottomBorder() { Val = new EnumValue<BorderValues>(BorderValues.Single), Size = 2 },
        new LeftBorder() { Val = new EnumValue<BorderValues>(BorderValues.Single), Size = 2 },
        new RightBorder() { Val = new EnumValue<BorderValues>(BorderValues.Single), Size = 2 },
        new InsideHorizontalBorder() { Val = new EnumValue<BorderValues>(BorderValues.Single), Size = 2 },
        new InsideVerticalBorder() { Val = new EnumValue<BorderValues>(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

时间: 2024-11-08 06:31:14

C#采用OpenXml给Word文档添加表格的相关文章

OpenXml入门----给Word文档添加表格

下面将展示如何使用Openxm向Word添加表格. 代码中表头和数据我用的同一个TableRow来添加,其实可以通过TableHeader来,其实都一样.后面教程我会给出如何设置单元格样式.表头那一行可以自己通过设置样式来控制 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Document

OpenXml入门----给Word文档添加文字

使用OpenXml给word文档添加文字,每个模块都有自己对于的属性以及内容,要设置样式就先声明属性对象,将样式Append到属性里面,再将属性append到模块里面,那么模块里面的内容就具备该样式了.此方法默认是在文件后面追加内容 Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Docum

C# 给Word文档添加内容控件

C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word文档.下面就来看看如何使用C#给word文档添加组合框.文本.图片.日期选取器及下拉列表等内容控件(这里我借助了一个word组件Spire.Doc). 添加组合框内容控件 组合框用于显示用户可以选择的项目列表.和下拉列表不同的是组合框允许用户编辑或添加项. //给段落添加一个内容控件并指定它的SDT

向Docx4j生成的word文档添加图片和布局--第一部分

原文标题:Adding images and layout to your Docx4j-generated word documents, part 1 原文链接:http://blog.iprofs.nl/2012/10/22/adding-images-and-layout-to-your-docx4j-generated-word-documents-part-1/ 原文作者:lvdpal 发表日期:2012年10月22日 注:由于我对docx4j也不是很熟悉,所以很多专业名词不会翻译,

C#/VB.NET 给Word文档添加/撤销书签

在现代办公环境中,阅读或者编辑较长篇幅的Word文档时,想要在文档中某一处或者几处留下标记,方便日后查找.修改时,需要在相对应的文档位置插入书签.那对于开发者而言,在C#或者VB.NET语言环境中,如何来快速.简便的插入书签呢,我分享一下我的经验.这里我用到了一款E-iceblue公司发布的一款免费的Word组件(Free Spire.Doc for .NET),方法很简单,如下: 步骤一:初始化Document实例并加载Word文档 Document document = new Docume

python给word文档添加标题

import docxdoc=docx.Document()#整数 0 表示标题是 Title 样式,这用于文档的顶部.整数 1 到 45是不同的标题层次,是主要的标题, 45是最低层的子标题doc.add_heading('标题0',0)doc.add_heading('标题1',1)doc.add_heading('标题2',2)doc.add_heading('标题3',3)doc.add_heading('标题4',4)doc.add_heading('标题5',5)doc.save('

将word文档A表格中的内容拷贝到word文档B表格中

Function IsFileExists(ByVal strFileName As String) As Boolean If Dir(strFileName, 16) <> Empty Then IsFileExists = True Else IsFileExists = False End If End Function Sub setname() Dim I As Integer Dim J As Integer Dim pspname As String Dim pspnumber

操作word文档 添加一个table (书签方式)

1.添加一个table 显示成问答两列 using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Aspose.Words;using TJSupervisor.ModulePluginsHandler.Business.Service; na

删除word文档中表格后的空行

处理办法为: 方法1:使上.下页边距数值缩小,从而使页面扩大能容纳下这一段落行. 方法2:光标处于最后段落行符号前,右键→段落→缩进和间距→间距→行距→固定值→设置值→1磅→确定.