チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Doc for .NET»»C#:Word 文書内の表を結合または分割する方法
2024-08-30

C#:Word 文書内の表を結合または分割する方法

Word 文書内の表は、データを明確かつ構造的に整理するのに役立ちます。しかし、文書が複雑になるにつれて、表の構造を調整する必要が生じることがあります。複数の表を結合して包括的に表示したり、大きな表を分割して可読性を向上させたりすることで、データの提示が大幅に改善されます。この記事では、Spire.Doc for .NET を使用して、C# で Word 文書内の表を結合または分割する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# で Word 文書内の表を結合する

Spire.Doc for .NET を使用すると、他の表からすべての行を対象の表にコピーし、その後他の表を削除することで、2つ以上の表を1つに結合できます。以下はその詳細手順です。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して、指定したセクションを取得します。
  • セクション内の2つの表を section.Tables[] プロパティで取得します。
  • 2番目の表のすべての行を Table.Rows[].Clone() メソッドを使用してコピーします。
  • 2番目の表の行を Table.Rows.Add() メソッドを使用して1番目の表に追加します。
  • Document.SaveToFile() メソッドを使用して、文書を保存します。
  • C#
using Spire.Doc;

namespace CombineTables
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントのインスタンスを作成
            Document doc = new Document();

            // Word ドキュメントを読み込む
            doc.LoadFromFile("Sample.docx");

            // 最初のセクションを取得
            Section section = doc.Sections[0];

            // セクション内の最初と2番目のテーブルを取得
            Table table1 = section.Tables[0] as Table;
            Table table2 = section.Tables[1] as Table;

            // table2の行をtable1に追加
            for (int i = 0; i < table2.Rows.Count; i++)
            {
                table1.Rows.Add(table2.Rows[i].Clone());
            }

            // table2を削除
            section.Tables.Remove(table2);

            // 結果のドキュメントを保存
            doc.SaveToFile("Word文書内の表をマージ.docx", FileFormat.Docx);
            doc.Close();
        }
    }
}

C#:Word 文書内の表を結合または分割する方法

C# で Word 文書内の表を分割する

表を2つ以上に分割するには、新しい表を作成し、元の表から指定した行を新しい表にコピーし、元の表からそれらの行を削除します。以下はその詳細手順です。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して、指定したセクションを取得します。
  • セクション内の指定した表を section.Tables[] プロパティで取得します。
  • 表を分割する行のインデックスを指定します。
  • Table クラスの新しいインスタンスを作成します。
  • 元の表の指定した行を Table.Rows[].Clone() メソッドを使用してコピーします。
  • 指定した行を新しい表に Table.Rows.Add() メソッドを使用して追加します。
  • コピーした行を元の表から Table.Rows.RemoveAt() メソッドを使用して削除します。
  • 新しい表をセクションに Section.Tables.Add() メソッドを使用して追加します。
  • Document.SaveToFile() メソッドを使用して、文書を保存します。
  • C#
using Spire.Doc;

namespace SplitWordTable
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントのインスタンスを作成
            Document doc = new Document();

            // Word ドキュメントを読み込む
            doc.LoadFromFile("Word文書内の表をマージ.docx");

            // 最初のセクションを取得
            Section section = doc.Sections[0];

            // セクション内の最初のテーブルを取得
            Table table = section.Tables[0] as Table;

            // テーブルを5行目から分割するように指定
            int splitIndex = 5;

            // 同じスタイルで新しいテーブルを作成
            Table newTable = table.Clone();
            newTable.Rows.Clear();

            // 5行目から最後の行までを新しいテーブルに追加
            for (int i = splitIndex; i < table.Rows.Count; i++)
            {
                newTable.Rows.Add(table.Rows[i].Clone());
            }

            // 元のテーブルから行を削除
            for (int i = table.Rows.Count - 1; i >= splitIndex; i--)
            {
                table.Rows.RemoveAt(i);
            }

            // 新しいテーブルをセクションに追加
            section.Tables.Add(newTable);

            // 結果のドキュメントを保存
            doc.SaveToFile("Word文書内の表を分割.docx", FileFormat.Docx);
            doc.Close();
        }
    }
}

C#:Word 文書内の表を結合または分割する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 167 times