IronWordでDOCXからテキストを抽出する

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

IronWordのExtractText()メソッドは、文書全体、特定の段落、または表のセルにアクセスしてDOCXファイルからテキストを抽出することを可能にし、C#での文書処理やデータ分析タスクのためのシンプルなAPIを提供します。

クイックスタート: DOCXからテキストを抽出するとして

1.IronWord NuGetパッケージをインストールします:Install-Package IronWord<//code>. 2.WordDocumentを作成または読み込みます:WordDocument doc = new WordDocument("document.docx");。 3.すべてのテキストを抽出します:string text = doc.ExtractText();。 4.特定の段落から抜粋します:string para = doc.Paragraphs[0].ExtractText();。 5.テーブルのセルから抽出します:string cell = doc.Tables[0].Rows[0].Cells[0].ExtractText();.

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

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

    PM > Install-Package IronWord

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

    using IronWord;
    
    // Quick example: Extract all text from DOCX
    WordDocument doc = new WordDocument("sample.docx");
    string allText = doc.ExtractText();
    Console.WriteLine(allText);
  3. 実際の環境でテストするためにデプロイする

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

DOCX ファイルからのテキスト抽出は、ドキュメント処理とデータ分析の一般的な要件です。 IronWord は、既存の DOCX ファイルからテキスト コンテンツを読み取って抽出する簡単な方法を提供し、段落、表、その他のテキスト要素にプログラムでアクセスできるようにします。

このチュートリアルでは、ExtractText() メソッドを詳しく取り上げ、さまざまなドキュメント要素からテキストにアクセスする方法を示します。 文書インデックスシステム、コンテンツ管理ソリューション、データ抽出パイプラインのいずれを構築する場合でも、Word文書からテキストを効率的に抽出する方法を理解することは不可欠です。

IronWordを始める

今日あなたのプロジェクトでIronWordを無料トライアルで使用開始。

最初のステップ:
green arrow pointer


DOCXドキュメントからすべてのテキストを抽出するにはどうすればよいですか?

ExtractText()メソッドは、Word文書全体からテキストコンテンツを取得します。 この例では、新しいドキュメントを作成し、それにテキストを追加し、 ExtractText()を使用してテキストを抽出し、コンソールに表示します。 これは、主要なテキスト抽出ワークフローを示しています。

抽出されたテキストは、ドキュメントの論理的な読み順を維持します。 このメソッドは、ヘッダー、段落、リスト、その他のテキスト要素を順番に処理するため、コンテンツ分析や検索インデックス作成アプリケーションに最適です。

:path=/static-assets/word/content-code-examples/how-to/extract-text-simple.cs
using IronWord;

// Instantiate a new DOCX file
WordDocument doc = new WordDocument();

// Add text
doc.AddText("Hello, World!");

// Print extracted text from the document to the console
Console.WriteLine(doc.ExtractText());
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

抽出されたテキストはどのように見えますか?

Microsoft Word ドキュメントに

コンソールではどのような出力が期待できますか?

特定の段落からテキストを抽出するにはどうすればよいですか?

さらに細かく制御するために、ドキュメント全体ではなく特定の段落からテキストを抽出できます。 Paragraphsコレクションにアクセスすることで、必要な段落をターゲットにして処理することができます。 このようなきめ細かなアプローチは、構造化されたコンテンツを持つ文書を扱う場合や、特定のセクションを個別に処理する必要がある場合に便利です。

この例では、最初と最後の段落からテキストを抽出して結合し、結果を.txtファイルに保存します。こ の技法は、 文書の序論 と 結論を抽出 し たい と き の文書要約ツールで よ く 用い ら れます。 ライセンスキーを使用して機能のロックを解除するのと同様に、Paragraphsコレクションを使用すると、特定のドキュメント要素にアクセスできます。

:path=/static-assets/word/content-code-examples/how-to/extract-text-paragraphs.cs
using IronWord;
using System.IO;

// Load an existing DOCX file
WordDocument doc = new WordDocument("document.docx");

// Extract text and assign variables
string firstParagraph = doc.Paragraphs[0].ExtractText();
string lastParagraph = doc.Paragraphs.Last().ExtractText();

// Combine the texts
string newText = firstParagraph + " " + lastParagraph;

// Export the combined text as a new .txt file
File.WriteAllText("output.txt", newText);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

特定の段落を抽出する機能は、文書分析要件と組み合わせることで威力を発揮します。 たとえば、書式や位置、内容のパターンに基づいて、主要な段落を抽出することもできます。 この選択的抽出アプローチにより、処理時間を短縮し、最も関連性の高いコンテンツに集中することができます。

最初の段落からどのような内容が抽出されますか?

抽出のデモンストレーションのために、黒いテキストの段落の上に赤い書式の段落を表示したWord文書.

最後の段落からどのような内容が抽出されますか?

Microsoft Word ドキュメントで、Lorem ipsum テキストを紫と青の色で書式設定した段落を表示しています。

結合されたテキストは出力ファイルにどのように表示されますか?

段落の境界を示す赤と青の矢印でマークされた段落抽出ポイントを示すテキストエディタ.

上のスクリーンショットは、最初の段落の抽出、最後の段落の抽出、およびテキストファイルに保存された結合出力を示しています。抽出処理によって、テキスト内容が保持される一方で、書式情報が削除され、プレーンテキスト処理に適していることに注目してください。

DOCXでテーブルからデータを抽出するには?

テーブルには、処理や分析のために抽出する必要がある構造化データが含まれることがよくあります。 IronWord を使用すると、行やセルを移動してテーブル データにアクセスできます。 この例では、API 統計テーブルを含むドキュメントを読み込み、2 行目の 4 列目から特定のセルの値を抽出します。

テーブル抽出は、データ移行プロジェクト、レポート作成、自動データ収集ワークフローに不可欠です。 最初のテーブルはTables[0]、最初の行はRows[0]というように、表形式のデータを扱う場合、ゼロベースのインデックスシステムを理解することは非常に重要です。 この体系的なアプローチは、ライセンス構造と似ており、予測可能なアクセスパターンを提供します。

:path=/static-assets/word/content-code-examples/how-to/extract-text-table.cs
using IronWord;

// Load the API statistics document
WordDocument apiStatsDoc = new WordDocument("api-statistics.docx");

// Extract text from the 1st table, 4th column and 2nd row
string extractedValue = apiStatsDoc.Tables[0].Rows[2].Cells[3].ExtractText();

// Print extracted value
Console.WriteLine($"Target success rate: {extractedValue}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ソース テーブルはどのようなものですか?

リクエスト、待ち時間、成功率、帯域幅のメトリクスを含む6つのエンドポイントを示すWordのAPI使用統計表

テーブルのセルからどのような値が取得されますか?

抽出されたテーブル値.

高度なテキスト抽出シナリオ

複雑な文書を扱う場合は、複数の抽出テクニックを組み合わせる必要があります。 複数の要素からテキストを抽出し、それらを異なる方法で処理する例を示します:

using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この高度な例では、さまざまなドキュメント要素を組み合わせて構造化抽出を作成する方法を示します。 このアプローチは、ドキュメントの要約を作成したり、インデックスを作成したり、さらなる処理のためにデータを準備したりする場合に便利です。 アップグレードがソフトウェアの機能を強化するように、抽出方法を組み合わせることで、文書処理能力が強化されます。

テキスト抽出のベストプラクティス

本番アプリケーションにテキスト抽出を実装する場合は、以下のベストプラクティスを考慮してください:

1.エラー処理:ドキュメントが破損していたり、予期しない構造になっていたりする可能性があるので、常にtry-catchブロックで抽出コードを囲んでください。

2.パフォーマンスの最適化:大規模なドキュメントやバッチ処理では、ドキュメントの内容全体ではなく、必要な部分のみを抽出することを検討してください。

3.文字エンコーディング:抽出したテキストを保存するとき、特に特殊文字や複数の言語を含む文書の場合は、文字エンコーディングに注意してください。

4.メモリ管理:複数のドキュメントを処理するときは、WordDocument オブジェクトを適切に破棄してメモリリークを防ぎましょう。

テキスト抽出では、論理的な読み順は維持されますが、書式は削除されることを忘れないでください。 フォーマット情報を維持する必要がある場合は、追加のIronWord機能を使用するか、メタデータを別に保存することを検討してください。 本番環境に導入する場合は、changelog を確認し、最新の機能と改善点を常に把握してください。

まとめ

IronWordのExtractText()メソッドはDOCXファイルからテキストを抽出する強力で柔軟な方法を提供します。 文書全体、特定の段落、または表データを抽出する必要があるかどうかにかかわらず、APIはあなたの目標を達成するための簡単な方法を提供します。 これらのテクニックを適切なエラー処理と最適化戦略と組み合わせることで、さまざまなテキスト抽出シナリオを効率的に処理する堅牢な文書処理アプリケーションを構築することができます。

より高度なシナリオや追加機能の探求については、拡張機能や、ドキュメント処理機能を強化するためのその他のドキュメントリソースをご覧ください。

よくある質問

C#でWord文書からすべてのテキストを抽出するにはどうすればよいですか?

WordDocumentオブジェクトにIronWordのExtractText()メソッドを使用します。DOCX ファイルを WordDocument doc = new WordDocument("document.docx"); で読み込み、string text = doc.ExtractText(); を呼び出してドキュメントからすべてのテキストコンテンツを取得します。

文書全体ではなく、特定の段落からテキストを抽出できますか?

はい、IronWordではParagraphsコレクションにアクセスすることで、特定の段落からテキストを抽出することができます。doc.Paragraphs[index].ExtractText()を使用して、より詳細なテキスト抽出のために個々の段落をターゲットにしてください。

DOCXファイルの表からテキストを抽出する方法を教えてください。

IronWordはTablesコレクションを通してテーブルのテキスト抽出を可能にします。doc.Tables[0].Rows[0].Cells[0].ExtractText()を使用して特定のセルにアクセスし、ドキュメント内の任意のテーブル・セルからテキスト・コンテンツを取得します。

ExtractText() を使用する場合、抽出されたテキストはどのような順序に従いますか?

IronWordのExtractText()メソッドはドキュメントの論理的な読み順を維持し、ヘッダー、段落、リスト、その他のテキスト要素を順番に処理するため、コンテンツ分析や検索インデックス作成に最適です。

DOCXファイルからテキストを抽出する基本的な手順を教えてください。

まずNuGet (Install-Package IronWord)を介してIronWordをインストールし、WordDocumentを作成または読み込み、最後にExtractText()メソッドを使用してドキュメント全体、特定の段落、または必要に応じてテーブルのセルからテキストを取得します。

テキスト抽出は文書索引システムの構築に適していますか?

IronWordのテキスト抽出機能は、文書インデックス・システム、コンテンツ管理ソリューション、データ抽出パイプラインの構築に最適で、Word文書コンテンツへの効率的なプログラムアクセスを提供します。

Ahmad Sohail
フルスタックデベロッパー

Ahmadは、C#、Python、およびウェブ技術に強い基盤を持つフルスタック開発者です。彼はスケーラブルなソフトウェアソリューションの構築に深い関心を持ち、デザインと機能が実際のアプリケーションでどのように融合するかを探求することを楽しんでいます。

Iron Softwareチームに参加する前、Ahmadは自動化プロジェクトやAPI統合に取り組み、パフォーマンスの向上と開発者の体験向上に注力してきました。

彼の自由時間には、UI/UXのアイデアを試したり、オープンソースツールに貢献したり、時折テクニカルライティングやドキュメンテーションに取り組んで、複雑なトピックを理解しやすくすることを目指しています。

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