C#实现拆分合并Word表格中的单元格

 更新时间:2022年12月22日 14:38:19   作者:Carina-baby  
我们在使用Word制作表格时,由于表格较为复杂,只是简单的插入行、列并不能满足我们的需要。要做一个完整的表格,很多时候需要将单元格进行拆分或者合并。本文将详细为您介绍在Word表格中拆分或合并单元格的思路及方法,希望对大家有所帮助

我们在使用Word制作表格时,由于表格较为复杂,只是简单的插入行、列并不能满足我们的需要。要做一个完整的表格,很多时候需要将单元格进行拆分或者合并,才能达到我们想要的效果。那么具体要如何操作呢?别担心,本文将详细为您介绍在Word表格中拆分或合并单元格的思路及方法。

  • 在Word表格中合并单元格
  • 在Word表格中拆分单元格

程序环境

本次测试时,在程序中引入Free Spire.Doc for .NET。可通过以下方法引用 Free Spire.Doc.dll文件:

方法1:将 Free Spire.Doc for .NET下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的 Spire.Doc.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

方法2:通过NuGet安装。可通过以下2种方法安装:

(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,点击“安装”。等待程序安装完成。

(2)将以下内容复制到PM控制台安装。

Install-Package FreeSpire.Doc -Version 10.8.0

在Word表格中合并单元格

合并单元格,指的是将两个或多个位于同一行或者同一列的单元格合并成一个单元格。具体步骤如下:

  • 初始化 Document类的实例。
  • 使用Document.LoadFromFile() 方法加载Word文档。
  • 调用Document.Sections[int] 属性,通过索引获取文档中的特定节。
  • 使用Section.AddTable() 方法将表添加到该节。
  • 使用Table.ResetCells() 方法指定表的行数和列的数量。
  • 使用Table.ApplyHorizontalMerge() 方法水平合并表中的特定单元格。
  • 使用 Table.ApplyVerticalMerge() 方法垂直合并表中的特定单元格。
  • 将数据添加到表中。
  • 将样式应用于表。
  • 使用Document.SaveToFile() 方法保存结果文档。

完整代码

C#

using Spire.Doc;
using Spire.Doc.Documents;

namespace MergeTableCells
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化 Document类的实例
            Document document = new Document();
            //加载Word文档
            document.LoadFromFile("测试文档.docx");

            //获取特定节
            Section section = document.Sections[0];

            //添加一个 4 x 4 表格到该节
            Table table = section.AddTable();
            table.ResetCells(4, 4);

            //水平合并表中的特定单元格
            table.ApplyHorizontalMerge(0, 0, 3);
            //垂直合并表中的特定单元格
            table.ApplyVerticalMerge(0, 2, 3);

            //将数据添加到表格中
            for (int row = 0; row < table.Rows.Count; row++)
            {
                for (int col = 0; col < table.Rows[row].Cells.Count; col++)
                {
                    TableCell cell = table[row, col];
                    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                    Paragraph paragraph = cell.AddParagraph();
                    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center;
                    paragraph.Text = "文本";
                }
            }

            //将样式应用于表
            table.ApplyStyle(DefaultTableStyle.LightGridAccent1);

            //保存结果文档
            document.SaveToFile("合并单元格.docx", FileFormat.Docx2013);
        }
    }
}

VB.NET

Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace MergeTableCells
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '初始化 Document类的实例
            Dim document As Document = New Document()
            '加载Word文档
            document.LoadFromFile("测试文档.docx")

            '获取特定节
            Dim section As Section = document.Sections(0)

            '添加一个 4 x 4 表格到该节
            Dim table As Table = section.AddTable()
            table.ResetCells(4, 4)

            '水平合并表中的特定单元格
            table.ApplyHorizontalMerge(0, 0, 3)
            '垂直合并表中的特定单元格
            table.ApplyVerticalMerge(0, 2, 3)

            '将数据添加到表格中
            For row As Integer = 0 To table.Rows.Count - 1
                For col As Integer = 0 To table.Rows(row).Cells.Count - 1
                    Dim cell As TableCell = table(row, col)
                    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle
                    Dim paragraph As Paragraph = cell.AddParagraph()
                    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
                    paragraph.Text = "文本"
                Next
            Next

            '将样式应用于表
            table.ApplyStyle(DefaultTableStyle.LightGridAccent1)

            '保存结果文档
            document.SaveToFile("合并单元格.docx", FileFormat.Docx2013)
        End Sub
    End Class
End Namespace

效果图

在Word表格中拆分单元格

将一个单元格拆分成两个或多个单元格,这种方法就叫做拆分单元格。具体步骤如下:

初始化Document类的实例。

使用Document.LoadFromFile() 方法加载Word文档。

调用Document.Sections[int] 属性,通过索引获取文档中的特定节。

通过Section.Tables[int] 属性,通过索引在该节获取特定表格。

通过Table.Rows[int].Cells[int] 属性获取要拆分的表格单元格。

使用TableCell.SplitCell() 方法将单元格分为特定数量的列和行。

使用 Document.SaveToFile() 方法保存结果文档。

完整代码

C#

using Spire.Doc;

namespace SplitTableCells
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化Document类的实例
            Document document = new Document();
            //加载Word文档
            document.LoadFromFile("合并单元格.docx");

            //获取文档中的特定节
            Section section = document.Sections[0];

            //在该节获取特定表格
            Table table = section.Tables[0] as Table;

            //获取要拆分的表格单元格
            TableCell cell1 = table.Rows[3].Cells[3];
            //将单元格分为特定数量的列和行
            cell1.SplitCell(2, 2);

            //保存结果文档
            document.SaveToFile("拆分单元格.docx", FileFormat.Docx2013);
        }
    }
}

VB.NET

Imports Spire.Doc

Namespace SplitTableCells
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '初始化Document类的实例
            Dim document As Document = New Document()
            '加载Word文档
            document.LoadFromFile("合并单元格.docx")

            '获取文档中的特定节
            Dim section As Section = document.Sections(0)

            '在该节获取特定表格
            Dim table As Table = TryCast(section.Tables(0), Table)

            '获取要拆分的表格单元格
            Dim cell1 As TableCell = table.Rows(3).Cells(3)
            '将单元格分为特定数量的列和行
            cell1.SplitCell(2, 2)

            '保存结果文档
            document.SaveToFile("拆分单元格.docx", FileFormat.Docx2013)
        End Sub
    End Class
End Namespace

效果图

到此这篇关于C#实现拆分合并Word表格中的单元格的文章就介绍到这了,更多相关C#拆分合并Word表格单元格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#简单实现IOC容器的示例代码

    C#简单实现IOC容器的示例代码

    IoC 的原理是通过将对象的创建和依赖关系的管理交给外部容器来实现,从而降低了代码的耦合度,提高了代码的可维护性和可测试性,下面我们就来看看如何通过C#实现一个IOC容器吧
    2024-02-02
  • 基于Unity实现3D版2048游戏的示例代码

    基于Unity实现3D版2048游戏的示例代码

    这篇文章主要为大家详细介绍了如何利用Unity实现简易的3D版2048游戏,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-02-02
  • C#在MySQL大量数据下的高效读取、写入详解

    C#在MySQL大量数据下的高效读取、写入详解

    最近由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G 都是都是家常便饭。 那么主要的开发语言是C#,数据库使用的是MySQL。下面通过这篇文章我们来一起学习学习吧。
    2016-11-11
  • WPF开发之实现一种三轴机械手控件

    WPF开发之实现一种三轴机械手控件

    这篇文章主要为大家详细介绍了如何利用WPF实现简单一种三轴机械手控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-01-01
  • C#操作Windows服务类System.ServiceProcess.ServiceBase

    C#操作Windows服务类System.ServiceProcess.ServiceBase

    这篇文章介绍了C#操作Windows服务类System.ServiceProcess.ServiceBase,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#实现在窗体上的统计图效果

    C#实现在窗体上的统计图效果

    这篇文章主要为大家详细介绍了C#实现在窗体上的统计图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#从前面或后面按指定数量删除字符串

    C#从前面或后面按指定数量删除字符串

    这篇文章介绍了C#从前面或后面按指定数量删除字符串的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • c# 自定义值类型一定不要忘了重写Equals,否则性能和空间双双堪忧

    c# 自定义值类型一定不要忘了重写Equals,否则性能和空间双双堪忧

    这篇文章主要介绍了c# 自定义值类型一定不要忘了重写Equals,帮助大家提高c# 程序的性能,感兴趣的朋友可以了解下
    2020-08-08
  • C# Invoke,begininvoke的用法详解

    C# Invoke,begininvoke的用法详解

    这篇文章主要介绍了C# Invoke,begininvoke的用法详解,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • Unity实战之制作动画编辑器

    Unity实战之制作动画编辑器

    为了更方便地为UI视图添加动画,将动画的编辑功能封装在了UI View类中,可以通过编辑器快速的为视图编辑动画。本文将通过Unity制作一个动画编辑器,需要的可以参考一下
    2022-02-02

最新评论