C#采用OpenXml給Word文檔添加表格
更新時間:2014年09月24日 10:27:21 投稿:shichen2014
這篇文章主要介紹了C#采用OpenXml給Word文檔添加表格的方法,是OpenXml操作Word的一個非常實用的技巧,需要的朋友可以參考下
本文實例講述了C#采用OpenXml給Word文檔添加表格的方法,是非常實用的操作技巧。分享給大家供大家參考。具體分析如下:
這里將展示如何使用Openxml向Word添加表格. 代碼中表頭和數(shù)據(jù)我們用的同一個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">數(shù)據(jù)</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);
// 添加數(shù)據(jù)
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)));
}
}
}
}
執(zhí)行呈現(xiàn)結果如下:

希望本文所述對大家的C#程序設計有所幫助
相關文章
C# 使用 OleDbConnection 連接讀取Excel的方法
這篇文章主要介紹了C# 使用 OleDbConnection 連接讀取Excel的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

