首頁 > 軟體

C#實現拆分合並Word表格中的單元格

2022-12-23 14:01:09

我們在使用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表格單元格內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com