本文实例讲述了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文档添加文字,包括了C#采用OpenXml实现给word文档添加文字的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#采用OpenXml实现给word文档添加文字的方法,分享给大家供大家参考。具体方法如下: 一般来说,使用OpenXml给word文档添加文字,每个模块都有自己对于的属性以及内容,要设置样式就先声明属性对象,将样式Appen
我想使用openxml在word文档中添加一个水平形状。 我试图使用OpenXML生产力工具粘贴代码,但在打开生成的文件时出现了一些错误http://schemas.microsoft.com/office/word/2010/wordml:anchorId“属性未声明)
本文向大家介绍C#采用OpenXml给word里面插入图片,包括了C#采用OpenXml给word里面插入图片的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#采用OpenXml给word里面插入图片的方法,分享给大家供大家参考。具体分析如下: 首先需要指出的是在MSDN官网有完整的OpenXML教程,虽然是全英文的不过还是很有帮助的。 注,原来摘抄代码里面没有模板,在copy过来发现插
本文向大家介绍C#如何给word文档添加水印,包括了C#如何给word文档添加水印的使用技巧和注意事项,需要的朋友参考一下 和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力。文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭。前面我分享了如何给PDF添加水印,有人问我如何给word文档添加水印,今天正好有空,就记录一下