Word 文書内の表は、データを明確かつ構造的に整理するのに役立ちます。しかし、文書が複雑になるにつれて、表の構造を調整する必要が生じることがあります。複数の表を結合して包括的に表示したり、大きな表を分割して可読性を向上させたりすることで、データの提示が大幅に改善されます。この記事では、Spire.Doc for .NET を使用して、C# で Word 文書内の表を結合または分割する方法を説明します。 C# で Word 文書内の表を結合する 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 文書内の表を分割する 表を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(); } } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。