概述

文本讲述通过C#和VB.NET程序代码给Word中的表格设置边框的方法,可分为给Table表格设置边框、给表格中的指定Cell设置边框,设置边框时,可设置边框颜色、边框类型、边框线条样式、边框线条粗细等等。

工具导入

编辑代码前,先下载需要的Word类库工具,本文中使用的是Spire的免费版库Free Spire.Doc for .NET。下载后,需要解压安装。在VS程序中将安装路径下Bin文件下的Spire.Doc.dll文件添加引用到“解决方案资源管理器”,如下添加引用结果:
C#/VB.NET设置Word表格边框_第1张图片

代码示例

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");
        }
    }
}

表格边框设置结果:
C#/VB.NET设置Word表格边框_第2张图片
[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");
        }
    }
}

单元格边框设置结果:
C#/VB.NET设置Word表格边框_第3张图片
[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