概述
文本讲述通过C#和VB.NET程序代码给Word中的表格设置边框的方法,可分为给Table表格设置边框、给表格中的指定Cell设置边框,设置边框时,可设置边框颜色、边框类型、边框线条样式、边框线条粗细等等。
工具导入
编辑代码前,先下载需要的Word类库工具,本文中使用的是Spire的免费版库Free Spire.Doc for .NET。下载后,需要解压安装。在VS程序中将安装路径下Bin文件下的Spire.Doc.dll文件添加引用到“解决方案资源管理器”,如下添加引用结果:
代码示例
1. 设置Table边框
[C#]
- using Spire.Doc;
- using System.Drawing;
- namespace SetTableBorder_Doc
- {
- class Program
- {
- static void Main(string[] args)
- {
- //加载Word文档
- Document doc = new Document();
- doc.LoadFromFile("test.docx");
- //获取Section
- Section section = doc.Sections[0];
- //获取第一个表格
- Table table = section.Tables[0] as Table;
- //设置上边框
- table.TableFormat.Borders.Top.BorderType = Spire.Doc.Documents.BorderStyle.DotDash;
- table.TableFormat.Borders.Top.LineWidth = 2.0F;
- table.TableFormat.Borders.Top.Color = Color.Red;
-
- //设置右边框
- table.TableFormat.Borders.Right.BorderType = Spire.Doc.Documents.BorderStyle.Double;
- table.TableFormat.Borders.Right.LineWidth = 2.0F;
- table.TableFormat.Borders.Right.Color = Color.Green;
- //设置下边框
- table.TableFormat.Borders.Bottom.BorderType = Spire.Doc.Documents.BorderStyle.None;
- //设置左边框
- table.TableFormat.Borders.Left.BorderType = Spire.Doc.Documents.BorderStyle.Hairline;
- table.TableFormat.Borders.Left.LineWidth = 2.0F;
- table.TableFormat.Borders.Left.Color = Color.Blue;
- //设置垂直边框
- table.TableFormat.Borders.Vertical.BorderType = Spire.Doc.Documents.BorderStyle.Dot;
- table.TableFormat.Borders.Vertical.LineWidth = 2.0F;
- table.TableFormat.Borders.Vertical.Color = Color.Orange;
- //设置水平边框
- table.TableFormat.Borders.Horizontal.BorderType = Spire.Doc.Documents.BorderStyle.Wave;
- table.TableFormat.Borders.Horizontal.LineWidth = 2.0F;
- table.TableFormat.Borders.Horizontal.Color = Color.Purple;
-
- //保存文档
- doc.SaveToFile("SetTableBorder.docx",FileFormat.Docx2013);
- System.Diagnostics.Process.Start("SetTableBorder.docx");
- }
- }
- }
表格边框设置结果:
[VB.NET]
- Imports Spire.Doc
- Imports System.Drawing
- Namespace SetTableBorder_Doc
- Class Program
- Private Shared Sub Main(args As String())
- '加载Word文档
- Dim doc As New Document()
- doc.LoadFromFile("test.docx")
- '获取Section
- Dim section As Section = doc.Sections(0)
- '获取第一个表格
- Dim table As Table = TryCast(section.Tables(0), Table)
- '设置上边框
- table.TableFormat.Borders.Top.BorderType = Spire.Doc.Documents.BorderStyle.DotDash
- table.TableFormat.Borders.Top.LineWidth = 2F
- table.TableFormat.Borders.Top.Color = Color.Red
- '设置右边框
- table.TableFormat.Borders.Right.BorderType = Spire.Doc.Documents.BorderStyle.[Double]
- table.TableFormat.Borders.Right.LineWidth = 2F
- table.TableFormat.Borders.Right.Color = Color.Green
- '设置下边框
- table.TableFormat.Borders.Bottom.BorderType = Spire.Doc.Documents.BorderStyle.None
- '设置左边框
- table.TableFormat.Borders.Left.BorderType = Spire.Doc.Documents.BorderStyle.Hairline
- table.TableFormat.Borders.Left.LineWidth = 2F
- table.TableFormat.Borders.Left.Color = Color.Blue
- '设置垂直边框
- table.TableFormat.Borders.Vertical.BorderType = Spire.Doc.Documents.BorderStyle.Dot
- table.TableFormat.Borders.Vertical.LineWidth = 2F
- table.TableFormat.Borders.Vertical.Color = Color.Orange
- '设置水平边框
- table.TableFormat.Borders.Horizontal.BorderType = Spire.Doc.Documents.BorderStyle.Wave
- table.TableFormat.Borders.Horizontal.LineWidth = 2F
- table.TableFormat.Borders.Horizontal.Color = Color.Purple
- '保存文档
- doc.SaveToFile("SetTableBorder.docx", FileFormat.Docx2013)
- System.Diagnostics.Process.Start("SetTableBorder.docx")
- End Sub
- End Class
- End Namespace
2. 设置Cell边框
[C#]
- using Spire.Doc;
- using System.Drawing;
- namespace SetCellBorder_Doc
- {
- class Program
- {
- static void Main(string[] args)
- {
- //加载Word文档
- Document doc = new Document();
- doc.LoadFromFile("test.docx");
- //获取Section
- Section section = doc.Sections[0];
- //获取第一个表格
- Table table = section.Tables[0] as Table;
- //获取单元格,设置上、下边框
- TableCell cell1 = table[0, 0];
- cell1.CellFormat.Borders.Top.BorderType = Spire.Doc.Documents.BorderStyle.Single;
- cell1.CellFormat.Borders.Top.LineWidth = 2.0F;
- cell1.CellFormat.Borders.Top.Color = Color.Red;
- cell1.CellFormat.Borders.Bottom.BorderType = Spire.Doc.Documents.BorderStyle.DashDotStroker;
- cell1.CellFormat.Borders.Bottom.LineWidth = 2.0F;
- cell1.CellFormat.Borders.Bottom.Color = Color.Pink;
- //获取单元格,设置左、右边框
- TableCell cell2 = table[2, 2];
- cell2.CellFormat.Borders.Left.BorderType = Spire.Doc.Documents.BorderStyle.Hairline;
- cell2.CellFormat.Borders.Left.LineWidth = 2.0F;
- cell2.CellFormat.Borders.Left.Color = Color.Yellow;
- cell2.CellFormat.Borders.Right.BorderType = Spire.Doc.Documents.BorderStyle.Double;
- cell2.CellFormat.Borders.Right.LineWidth = 2.0F;
- cell2.CellFormat.Borders.Right.Color = Color.HotPink;
- //保存文档
- doc.SaveToFile("SetCellBorder.docx",FileFormat.Docx2013);
- System.Diagnostics.Process.Start("SetCellBorder.docx");
- }
- }
- }
单元格边框设置结果:
[VB.NET]
- Imports Spire.Doc
- Imports System.Drawing
- Namespace SetCellBorder_Doc
- Class Program
- Private Shared Sub Main(args As String())
- '加载Word文档
- Dim doc As New Document()
- doc.LoadFromFile("test.docx")
- '获取Section
- Dim section As Section = doc.Sections(0)
- '获取第一个表格
- Dim table As Table = TryCast(section.Tables(0), Table)
- '获取单元格,设置上、下边框
- Dim cell1 As TableCell = table(0, 0)
- cell1.CellFormat.Borders.Top.BorderType = Spire.Doc.Documents.BorderStyle.[Single]
- cell1.CellFormat.Borders.Top.LineWidth = 2F
- cell1.CellFormat.Borders.Top.Color = Color.Red
- cell1.CellFormat.Borders.Bottom.BorderType = Spire.Doc.Documents.BorderStyle.DashDotStroker
- cell1.CellFormat.Borders.Bottom.LineWidth = 2F
- cell1.CellFormat.Borders.Bottom.Color = Color.Pink
- '获取单元格,设置左、右边框
- Dim cell2 As TableCell = table(2, 2)
- cell2.CellFormat.Borders.Left.BorderType = Spire.Doc.Documents.BorderStyle.Hairline
- cell2.CellFormat.Borders.Left.LineWidth = 2F
- cell2.CellFormat.Borders.Left.Color = Color.Yellow
- cell2.CellFormat.Borders.Right.BorderType = Spire.Doc.Documents.BorderStyle.[Double]
- cell2.CellFormat.Borders.Right.LineWidth = 2F
- cell2.CellFormat.Borders.Right.Color = Color.HotPink
- '保存文档
- doc.SaveToFile("SetCellBorder.docx", FileFormat.Docx2013)
- System.Diagnostics.Process.Start("SetCellBorder.docx")
- End Sub
- End Class
- End Namespace