IronWordでDOCXからテキストを抽出する
IronWordのExtractText()メソッドは、文書全体、特定の段落、または表のセルにアクセスしてDOCXファイルからテキストを抽出可能にし、C#での文書処理とデータ分析タスクに簡単なAPIを提供します。
-
1Install IronWord with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
using IronWord; // Quick example: Extract all text from DOCX WordDocument doc = new WordDocument("sample.docx"); string allText = doc.ExtractText(); Console.WriteLine(allText);C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronWord を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- IronWord C#ライブラリをインストールする
new WordDocument()を使用して既存のWordドキュメントを読み込みます- ドキュメントの
ExtractText()を呼び出してすべてのテキストを取得します Paragraphsコレクションを使用して特定の段落からテキストを抽出します- 抽出したテキストコンテンツを処理またはエクスポートする
DOCXドキュメントからすべてのテキストを抽出するにはどうすればよいですか?
ExtractText()メソッドは、Word文書全体からテキストコンテンツを取得します。 この例では、新しい文書を作成し、テキストを追加し、ExtractText()を使ってテキストを抽出し、それをコンソールに表示します。 これは、主要なテキスト抽出ワークフローを示しています。
抽出されたテキストは、ドキュメントの論理的な読み順を維持します。 このメソッドは、ヘッダー、段落、リスト、その他のテキスト要素を順番に処理するため、コンテンツ分析や検索インデックス作成アプリケーションに最適です。
using System;
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());Imports System
Imports IronWord
' Instantiate a new DOCX file
Dim doc As New WordDocument()
' Add text
doc.AddText("Hello, World!")
' Print extracted text from the document to the console
Console.WriteLine(doc.ExtractText())抽出されたテキストはどのように見えますか?

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

特定の段落からテキストを抽出するにはどうすればよいですか?
さらに細かく制御するために、ドキュメント全体ではなく特定の段落からテキストを抽出できます。 Paragraphsコレクションにアクセスすることで、必要な段落を対象にして処理することができます。 このようなきめ細かなアプローチは、構造化されたコンテンツを持つ文書を扱う場合や、特定のセクションを個別に処理する必要がある場合に便利です。
この例では、最初と最後の段落からテキストを抽出し、それらを結合して.txtファイルに保存します。この手法は、文書の概要抽出ツールで、文書のイントロダクションと結論を抽出したい場合によく使われます。 機能を解放するためにライセンスキーを使用するのと類似して、Paragraphsコレクションは特定の文書要素へのアクセスを提供します。
using System.IO;
using System.Linq;
using IronWord;
// 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);Imports System.IO
Imports System.Linq
Imports IronWord
' Load an existing DOCX file
Dim doc As New WordDocument("document.docx")
' Extract text and assign variables
Dim firstParagraph As String = doc.Paragraphs(0).ExtractText()
Dim lastParagraph As String = doc.Paragraphs.Last().ExtractText()
' Combine the texts
Dim newText As String = firstParagraph & " " & lastParagraph
' Export the combined text as a new .txt file
File.WriteAllText("output.txt", newText)特定の段落を抽出する機能は、文書分析要件と組み合わせることで威力を発揮します。 たとえば、書式や位置、内容のパターンに基づいて、主要な段落を抽出することもできます。 この選択的抽出アプローチにより、処理時間を短縮し、最も関連性の高いコンテンツに集中することができます。
最初の段落からどのような内容が抽出されますか?

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

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

上のスクリーンショットは、最初の段落の抽出、最後の段落の抽出、およびテキストファイルに保存された結合出力を示しています。抽出処理によって、テキスト内容が保持される一方で、書式情報が削除され、プレーンテキスト処理に適していることに注目してください。
DOCXでテーブルからデータを抽出するには?
テーブルには、処理や分析のために抽出する必要がある構造化データが含まれることがよくあります。 IronWord を使用すると、行やセルを移動してテーブル データにアクセスできます。 この例では、API 統計テーブルを含むドキュメントを読み込み、2 行目の 4 列目から特定のセルの値を抽出します。
テーブル抽出は、データ移行プロジェクト、レポート作成、自動データ収集ワークフローに不可欠です。 表形式データを扱う際には、ゼロベースのインデックスシステムを理解することが重要です - 最初の表はRows[0]となります。 この体系的なアプローチは、ライセンス構造と似ており、予測可能なアクセスパターンを提供します。
using System;
using IronWord;
using IronWord.Models;
// Load the API statistics document
WordDocument apiStatsDoc = new WordDocument("api-statistics.docx");
// Extract text from the 1st table, 4th column and 3rd row
string extractedValue = ((TableCell)apiStatsDoc.Tables[0].Rows[2].Cells[3]).ExtractText();
// Print extracted value
Console.WriteLine($"Target success rate: {extractedValue}");
このコードは、コレクションプロパティCellsを使用して表のセルにアクセスする方法を示しています。 ((TableCell)cell).ExtractText()。 これには、名前空間の宣言にusing IronWord.Models;を追加する必要があります。
ソース テーブルはどのようなものですか?

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

高度なテキスト抽出シナリオ
複雑な文書を扱う場合は、複数の抽出テクニックを組み合わせる必要があります。 複数の要素からテキストを抽出し、それらを異なる方法で処理する例を示します:
using IronWord;
using IronWord.Models;
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 = ((TableCell)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 => ((TableCell)cell).ExtractText());
extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
}
}
// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
この高度な例では、さまざまなドキュメント要素を組み合わせて構造化抽出を作成する方法を示します。 このアプローチは、ドキュメントの要約を作成したり、インデックスを作成したり、さらなる処理のためにデータを準備したりする場合に便利です。 アップグレードがソフトウェアの機能を強化するように、抽出方法を組み合わせることで、文書処理能力が強化されます。
テキスト抽出のベストプラクティス
本番アプリケーションにテキスト抽出を実装する場合は、以下のベストプラクティスを考慮してください:
1.エラー処理:ドキュメントが破損していたり、予期しない構造になっていたりする可能性があるので、常にtry-catchブロックで抽出コードを囲んでください。
2.パフォーマンスの最適化:大規模なドキュメントやバッチ処理では、ドキュメントの内容全体ではなく、必要な部分のみを抽出することを検討してください。
3.文字エンコーディング:抽出したテキストを保存するとき、特に特殊文字や複数の言語を含む文書の場合は、文字エンコーディングに注意してください。
- メモリ管理: 複数の文書を処理する際には、
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文書コンテンツへの効率的なプログラムアクセスを提供します。
How can I export extracted text to a file using IronWord?
Once you've extracted the text, you can use C# file handling methods like `File.WriteAllText` to save the text to a file, as demonstrated in the tutorial with paragraph extraction where combined text is saved to an output.txt file.
Is it possible to extract introduction and conclusion sections separately?
Yes, you can extract specific paragraphs such as the introduction and conclusion by targeting them within the `Paragraphs` collection. This method is effective for document summarization tools requiring distinct extraction of key sections.
What encoding considerations should be taken when saving extracted text?
IronWord users should be aware of character encoding, especially when dealing with documents containing special characters or multiple languages. Ensuring the correct encoding is crucial when saving extracted text to maintain text integrity.
How can IronWord's text extraction be optimized for large documents?
For large documents, optimize text extraction by targeting only the necessary portions instead of extracting the entire content. This ensures efficiency, reduces processing time, and leverages the full capabilities of IronWord.

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