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文档添加表格 的全部内容, 来源链接: utcz.com/z/326076.html

回到顶部