日常の開発では、Word文書を処理するニーズが少なくない。契約条項の抽出からレポートデータの解析まで、手動で操作すると効率が低く、エラーも発生しやすい。従来の方法はCOMコンポーネントや有料ライブラリに依存しているが、Wordテキストの読み取りという軽量なニーズはしばしば見落とされがちだ。本稿では、無料のFree Spire.Doc for .NETを使用してWordコンテンツを抽出する方法を中心に、コード例とツールの比較を併せて、コストゼロで高い互換性を持つ解決策を提供する。
Free Spire.Doc for .NET の概要
Free Spire.Doc for .NET は無料の文書処理ライブラリで、Microsoft Officeに依存することなくWord文書の作成、編集、読み取りを行うことができる。
適用場面:
- .doc および .docx 文書のプレーンテキストを迅速に抽出すること
- 段落のフォーマット情報を取得すること
注:小型文書にのみ適しており、段落数に制限がある。
Word 文書の読み取り手順
手順1:NuGetを介してライブラリをインストール
Install-Package FreeSpire.Doc
手順2:基本的なテキスト抽出コード
using Spire.Doc;
using System.IO;
class Program
{
static void Main()
{
//Word文書を読み込む
Document doc = new Document();
doc.LoadFromFile("E:\\PythonDoc\\抹茶.docx");
//GetTextメソッドを使用して文書内のすべてのテキストを取得する
string s = doc.GetText();
File.WriteAllText("Extracted.txt", s.ToString());
}
}
拡張機能:指定段落とスタイルの読み取り
文書全体の内容を読み取るだけでなく、Free Spire.Docは指定段落のテキストを読み取る機能もサポートしている。
using (StreamWriter writer = new StreamWriter("段落ごとに読み取り.txt", false, Encoding.UTF8))
{
// 指定段落を取得
Paragraph paragraph = doc.Sections[0].Paragraphs[1];
// 段落の配置方式を取得
HorizontalAlignment alignment = paragraph.Format.HorizontalAlignment;
// 段落の後の間隔を取得
float afterSpacing = paragraph.Format.AfterSpacing;
// 段落のフォーマット情報とテキストをファイルに書き込む
writer.WriteLine($"[配置方式: {alignment}, 段落後間隔: {afterSpacing}]");
writer.WriteLine(paragraph.Text);
}
}
他の方法との比較
| ツール/方法 | 料金の有無 | Officeへの依存有無 | テキスト抽出能力 |
|---|---|---|---|
| Free Spire.Doc | ✅ 無料 | ❌ 不要 | フォーマット/セクション/属性をサポート |
| Aspose.Words | ❌ 有料 | ❌ 不要 | 機能は充実しているが、ライセンスが必要 |
| COMコンポーネント | ✅ 無料 | ✅ 必要 | 基本的なテキスト抽出のみ |
| Open XML SDK | ✅ 無料 | ❌ 不要 | XML構造を手動で解析する必要があります |
Free Spire.Doc は現代的な .docx 形式と旧バージョンの doc 文書をサポートしており、ほとんどの簡単な場面のニーズを満たすことができる。.NETにおけるWord文書処理機能の詳細については、以下を参照してください:
