C# | IronWordでDOCXにテーブルを追加する方法

IronWordでC#を使用してDOCXに表を追加する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWordは、DOCXファイルとして保存する前に、指定された行と列を持つTableオブジェクトを作成し、ボーダーや色でスタイリングし、セルにコンテンツを入力することによって、開発者がC#でWord文書にプログラム的に表を追加することを可能にします。

クイックスタート:ワンコールでテーブルを作成して保存

この例では、IronWordでテーブルを作成する方法を示します。 寸法で表を作成し、スタイルを適用してコンテンツを追加し、文書に挿入して保存します。 スタイリングされた表を含むDOCXファイルを数分で作成できます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronWord をインストールします

    PM > Install-Package IronWord

  2. このコード スニペットをコピーして実行します。

    var table = new IronWord.Models.Table(3,4);
    var doc = new IronWord.WordDocument();
    doc.AddTable(table);
    doc.SaveAs("QuickTable.docx");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronWord を使い始めましょう
    arrow pointer

Word文書に表を追加するにはどうすればよいですか?

表はWord文書の基本的な構成要素です。 まず、行と列の数を指定して、Tableクラスをインスタンス化します。 背景色、シェーディング、ボーダー、ゼブラストライプ、幅など、テーブルのスタイルを設定します。 次に、直感的な[row, column] インデックスを使用して各セルにアクセスします。 各セルにテキスト、画像、図形、段落、あるいは表を追加します。 最後に、Word文書に表を追加します。

IronWordのテーブルは、Word文書で構造化されたデータを整理するための柔軟な基盤を提供します。 請求書、レポート、データ要約のいずれを作成する場合でも、Tableクラスは、コンテンツとプレゼンテーションの包括的な制御を提供します。 ゼロベースの索引システムは、プログラムによるセルの反復を簡素化し、豊富なスタイリングオプションはプロフェッショナルな外観を保証します。

ヒントすべての行と列のインデックス位置はゼロベースのインデックスに従います。

:path=/static-assets/word/content-code-examples/how-to/add-table-add-table.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

WordDocument doc = new WordDocument();

// Create table
Table table = new Table(5, 3);

// Configure border style
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = Color.Black;
borderStyle.BorderValue = BorderValues.Thick;
borderStyle.BorderSize = 5;

// Configure table border
TableBorders tableBorders = new TableBorders()
{
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};

// Apply styling
table.Zebra = new ZebraColor("FFFFFF", "dddddd");
table.Borders = tableBorders;

// Populate table
table[0, 0] = new TableCell(new TextContent("Number"));
table[0, 1] = new TableCell(new TextContent("First Name"));
table[0, 2] = new TableCell(new TextContent("Last Name"));
for (int i = 1; i < table.Rows.Count; i++)
{
    table[i, 0].AddChild(new TextContent($"{i}"));
    table[i, 1].AddChild(new TextContent($"---"));
    table[i, 2].AddChild(new TextContent($"---"));
}

// Add table
doc.AddTable(table);

doc.Save("document.docx");
$vbLabelText   $csharpLabel
空の4x3の表を示すWord文書。番号、姓、名の列があり、行の網掛けが交互になっています。

TableCell クラスの AddChild メソッドは、段落、画像、図形、表を含む ContentElement オブジェクトを受け入れます。 これにより、複雑なユースケースのネストテーブルが可能になります。

IronWordはテーブル・セルを扱う際に、コンテンツ管理のための複数のアプローチを提供します。 コンストラクタを使用して初期コンテンツを持つ TableCell をインスタンス化するか、AddChild メソッドを使用してコンテンツを段階的に追加します。 この柔軟性により、異なるコンテンツタイプを組み合わせた複雑なセル構造を構築することができます。たとえば、1つのセルに、ヘッダー段落、画像、詳細仕様のネストされた表が含まれることがあります。

以下は、高度な細胞集団のテクニックを示す例です:

// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();

// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);

// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));

// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWord
// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();

// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);

// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));

// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWord
$vbLabelText   $csharpLabel

どのようなスタイリング オプションをテーブルに適用できますか?

IronWordはテーブルのための広範なスタイリング機能を提供し、視覚的に魅力的でプロフェッショナルな文書の作成を可能にします。 基本的なボーダーや色だけでなく、セルのパディングやアライメントを制御し、ゼブラストライプによる条件付き書式を適用します。 スタイリング・システムは、親しみやすいプロパティ名と明確な値の列挙を使用し、パワーと直感的なデザインを兼ね備えています。

どのボーダー スタイルが利用できますか?

BorderValues列挙型を使用して、ボーダー値のすべての利用可能なオプションを調べてください:

Word のボーダー スタイル メニューには、シングル、ダブル、トリプル、点線、破線、波線、およびさまざまな太さの組み合わせなどのオプションが表示されます.

BorderValues列挙は、テーブルの美観のための包括的なオプションを提供します。 シンプルな単線から、波や点のような複雑なパターンまで、各スタイルは特定のデザイン目的に対応しています。 ビジネス文書にはプロフェッショナルなダブルボーダーやトリプルボーダーが、クリエイティブ文書にはWaveやDashDotパターンが効果的です。 BorderSize プロパティは、BorderValue と連携して、8 分の 1 ポイント単位で線の太さを正確に制御します。

以下は、異なるボーダー構成を示す実用的な例です:

// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);

// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
    BorderColor = Color.Navy,
    BorderValue = BorderValues.Double,
    BorderSize = 8
};

BorderStyle bodyBorder = new BorderStyle
{
    BorderColor = Color.Gray,
    BorderValue = BorderValues.Dotted,
    BorderSize = 3
};

// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
    TopBorder = headerBorder,
    BottomBorder = headerBorder,
    LeftBorder = bodyBorder,
    RightBorder = bodyBorder,
    InsideHorizontalBorder = bodyBorder,
    InsideVerticalBorder = bodyBorder
};

// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");
// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);

// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
    BorderColor = Color.Navy,
    BorderValue = BorderValues.Double,
    BorderSize = 8
};

BorderStyle bodyBorder = new BorderStyle
{
    BorderColor = Color.Gray,
    BorderValue = BorderValues.Dotted,
    BorderSize = 3
};

// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
    TopBorder = headerBorder,
    BottomBorder = headerBorder,
    LeftBorder = bodyBorder,
    RightBorder = bodyBorder,
    InsideHorizontalBorder = bodyBorder,
    InsideVerticalBorder = bodyBorder
};

// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");
$vbLabelText   $csharpLabel

テーブルの幅と配置のプロパティは、追加のレイアウト制御を提供します。 テーブルを特定の幅またはパーセンテージに設定し、ドキュメント内で整列させ、周囲のコンテンツとの相互作用を制御します。 セルレベルのスタイリング・オプションには、個々の背景色、テキストの配置、パディングの調整が含まれ、テーブルの外観のあらゆる側面をきめ細かく制御できます。

これらのスタイリング・オプションにより、単純なデータ・グリッドから複数の視覚的階層を持つ複雑な財務諸表まで、あらゆる文書のデザイン要件に合った表を作成することができます。

よくある質問

Word文書で特定の寸法の表を作成するにはどうすればよいですか?

IronWordでは、Tableクラスをインスタンス化し、行数と列数を指定することでテーブルを作成することができます。例えば、'var table = new IronWord.Models.Table(3,4);'で3行×4列のテーブルを作成します。そしてそれをWordDocumentオブジェクトに追加し、DOCXファイルとして保存します。

プログラムでテーブルのボーダーや色を設定できますか?

IronWordでは、背景色、シェーディング、ボーダー、ゼブラストライプ、幅を含む包括的なテーブル・スタイルを設定することができます。Word文書に追加する前に、これらのスタイルをテーブル・オブジェクトに適用することができます。

テーブルの特定のセルにアクセスし、入力するにはどうすればよいですか?

IronWordはゼロベースのインデックスを使用してテーブルのセルにアクセスします。直感的な[行、列]表記でセルにアクセスし、テキスト、画像、図形、段落、ネストされたテーブルなど、さまざまな種類のコンテンツをセルに入力することができます。

テーブルセルにはどのようなコンテンツを追加できますか?

IronWordのTableCellクラスを使用すると、ContentElementオブジェクトを受け付けるAddChildメソッドを通して複数のコンテンツ・タイプを追加することができます。これには、段落、画像、図形、そして入れ子の表構造を作成するための表も含まれます。

テーブルのセル内に入れ子のテーブルを作成できますか?

はい、IronWordはネストされたテーブルをサポートしています。AddChildメソッドはテーブルを含むContentElementオブジェクトを受け付けるので、テーブル・セル内にテーブルを追加して、複雑なデータ構成を扱うことができます。

表付きのDOCXファイルを作成する最も簡単な方法は何ですか?

IronWordの最速のアプローチは、ディメンションを持つTableオブジェクトを作成し、WordDocumentをインスタンス化し、AddTable()でテーブルを追加し、SaveAs()で保存することです。このプロセス全体はわずか4行のコードで完了します。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 29,594 | バージョン: 2025.12 リリース