ドキュメント内のテキスト置換と保存 – GroupDocs.Editor .NET

はじめに

プログラムで replace text in document を行う必要がある場合、GroupDocs.Editor for .NET はクリーンで高性能な方法を提供します。このチュートリアルでは、Word ファイルの読み込み、文字列の置換、そして結果を RTF、DOCM、プレーンテキストなどの一般的なフォーマットで保存する手順を解説します。ドキュメント自動化サービスを構築する場合や、社内ツールにクイックフィックス機能を追加する場合でも、以下の手順で数分で始められます。

クイック回答

  • テキスト置換の最も簡単な方法は何ですか? Editor でファイルを読み込み、HTML を変更し、EditableDocumentSave を呼び出します。
  • どのフォーマットに保存できますか? RTF、DOCM、TXT が標準でサポートされています。
  • フル Office のインストールは必要ですか? いいえ、GroupDocs.Editor は完全にサーバーサイドで動作します。
  • 必要な .NET バージョンは何ですか? .NET Framework 4.6.1 以降、.NET Core 3.1 以上、.NET 5/6 がすべてサポートされています。
  • 本番環境でライセンスは必須ですか? はい、商用ライセンスを取得すると評価制限が解除され、無料トライアルも利用可能です。

「replace text in document」とは?

“Replace text in document” は、ファイル内の特定の文字列をプログラムで検索し、手動編集せずに新しいコンテンツに置き換えることを指します。この操作は、バルク更新、テンプレート化、データ駆動型ドキュメント生成に不可欠です。開発者はドキュメントのパーソナライズを自動化し、複数ファイルにわたる規制変更を適用し、より大きなワークフロー内で動的コンテンツ生成を統合できます。

.NET 用 GroupDocs.Editor を使用する理由

GroupDocs.Editor は 30 以上の入力および出力フォーマット(DOCX、RTF、TXT、HTML、PDF、ODT など)をサポートし、500 MB までのファイルをドキュメント全体をメモリに読み込まずに処理できます。API は Windows、Linux、macOS 上で動作し、クロスプラットフォームの柔軟性と、内部ベンチマークによると複雑なレイアウトで 99.9 % の成功率 を提供します。

前提条件

  • 開発環境: Visual Studio(最新のエディション)
  • .NET Framework: 4.6.1 以降(または .NET Core 3.1 以上)
  • GroupDocs.Editor for .NET: 最新バージョンを here からダウンロードしてください。
  • 基本的な C# の知識: クラス、メソッド、文字列操作に慣れていること。

詳細な使用方法については、公式の documentation を参照してください。

名前空間のインポート

開始するには、ドキュメントの編集と保存に必要な名前空間をインポートします。

Editor クラスはすべてのドキュメント操作のエントリーポイントです。

// Placeholder for import statements – keep unchanged
```csharp
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;

環境の準備ができたので、**replace text in document** の具体的な手順に進みましょう。

## GroupDocs.Editor を使用してドキュメント内のテキストを置換する方法
`Editor` でソースファイルを読み込み、HTML 表現を取得し、HTML 文字列に対してシンプルな `Replace` を実行し、変更された HTML から `EditableDocument` を再作成します。最後に、対象フォーマットに適した `Save` オーバーロードを呼び出します。

### 手順 1: ドキュメントの読み込み
`EditableDocument` オブジェクトは、編集中のファイルのメモリ内表現を保持します。

`Editor` クラスはファイルを読み込み、操作可能な `EditableDocument` を返します。  
```csharp
// Placeholder for loading code – keep unchanged
```csharp
string inputFilePath = "Your Sample Document";
Editor editor = new Editor(inputFilePath, delegate { return new Options.WordProcessingLoadOptions(); });
EditableDocument defaultWordProcessingDoc = editor.Edit();

### 手順 2: ドキュメントの変更
GroupDocs.Editor は HTML スナップショットで動作するため、シンプルな置換ではドキュメントをプレーンテキストとして扱えます。

`EditableDocument.GetHtml()` メソッドで HTML を抽出し、文字列を変更した後、更新された HTML から新しい `EditableDocument` を作成します。  
```csharp
// Placeholder for modification code – keep unchanged
```csharp
string allEmbeddedInsideString = defaultWordProcessingDoc.GetEmbeddedHtml();
string allEmbeddedInsideStringEdited = allEmbeddedInsideString.Replace("Subtitle", "Edited subtitle");
EditableDocument editedDoc = EditableDocument.FromMarkup(allEmbeddedInsideStringEdited, null);

### 手順 3: ドキュメントの保存
GroupDocs.Editor は各サポートフォーマット用の専用 `Save` メソッドを提供します。以下は一般的な 3 つのターゲットです。

#### RTF として保存
`SaveAsRtf` メソッドは、編集されたコンテンツをリッチテキスト形式 (RTF) に書き込み、ほとんどのスタイルを保持します。  
```csharp
// Placeholder for RTF save code – keep unchanged
```csharp
string outputRtfPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.rtf");
WordProcessingSaveOptions rtfSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Rtf);
editor.Save(editedDoc, outputRtfPath, rtfSaveOptions);

#### DOCM として保存
DOCM はマクロ対応の Word フォーマットです。マクロ機能を保持する必要がある場合は `SaveAsDocm` を使用します。  
```csharp
// Placeholder for DOCM save code – keep unchanged
```csharp
string outputDocmPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.docm");
WordProcessingSaveOptions docmSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docm);
using (FileStream outputStream = File.Create(outputDocmPath))
{
    editor.Save(editedDoc, outputStream, docmSaveOptions);
}

#### プレーンテキストとして保存
軽量な出力の場合、`SaveAsTxt` は書式を除去し、純粋なテキストを返します。  
```csharp
// Placeholder for TXT save code – keep unchanged
```csharp
string outputTxtPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.txt");
TextSaveOptions textSaveOptions = new TextSaveOptions
{
    Encoding = System.Text.Encoding.UTF8,
    PreserveTableLayout = true
};
editor.Save(editedDoc, outputTxtPath, textSaveOptions);

### 手順 4: クリーンアップ
`EditableDocument` と `Editor` のインスタンスは常に破棄して、ファイルハンドルやアンマネージドリソースを解放してください。

`Dispose` パターンにより、一時ファイルが削除され、メモリが解放されます。  
```csharp
// Placeholder for cleanup code – keep unchanged
```csharp
editedDoc.Dispose();
defaultWordProcessingDoc.Dispose();
editor.Dispose();

## よくある問題と解決策
| 問題 | 発生理由 | 解決策 |
|-------|----------------|-----|
| **テキストが置換されない** | HTML にエンコード文字(`&nbsp;`、`<span>`)が含まれている可能性があります。 | 置換前に正確なノードを特定するために `HtmlAgilityPack` を使用してください。 |
| **保存したファイルが破損する** | 出力ストリームが破棄前にフラッシュされていません。 | `editableDocument.Save(...);` を呼び出し、その後 `editableDocument.Dispose();` を実行してください。 |
| **大きなファイルでパフォーマンスが低下する** | 300 ページのドキュメント全体の HTML をロードするとメモリを使用します。 | `LoadOptions.UseMemoryMapping = true` を有効にして、ファイルの一部をストリーミングしてください。 |
| **TXT として保存すると書式が失われる** | TXT フォーマットは設計上すべての書式を除去します。 | 基本的な書式が必要な場合は、代わりに RTF として保存することを検討してください。 |

## よくある質問

**Q: GroupDocs.Editor がサポートするファイルフォーマットは何ですか?**  
A: GroupDocs.Editor は 30 以上のフォーマットを扱い、DOCX、RTF、TXT、HTML、PDF、ODT などが含まれます。完全なリストは公式ドキュメントをご覧ください。

**Q: 購入前に GroupDocs.Editor を試すことはできますか?**  
A: はい、無料トライアルを [here](https://releases.groupdocs.com/) から入手できます。

**Q: 問題が発生した場合のサポートはありますか?**  
A: もちろんです。コミュニティや製品チームからの支援を受けるには、サポートフォーラム [here](https://forum.groupdocs.com/c/editor/20) をご利用ください。

**Q: 評価用の一時ライセンスはどう取得しますか?**  
A: 一時ライセンスは [here](https://purchase.groupdocs.com/temporary-license/) からリクエストしてください。

**Q: GroupDocs.Editor のフルバージョンはどこで購入できますか?**  
A: フルバージョンは [here](https://purchase.groupdocs.com/buy) から購入できます。

---

**最終更新日:** 2026-05-27  
**テスト環境:** GroupDocs.Editor 2.10 for .NET  
**作者:** GroupDocs

## 関連チュートリアル

- [GroupDocs.Editor for .NET を使用した Word ドキュメントの編集と保存方法:完全ガイド](/editor/net/word-processing-documents/editing-word-docs-groupdocs-editor-net/)
- [GroupDocs.Editor .NET を使用した Word の HTML 変換:ステップバイステップガイド](/editor/net/document-saving/convert-word-to-html-groupdocs-editor-dotnet/)
- [GroupDocs.Editor .NET で効率的なドキュメント編集:HTML を Editable Document に変換](/editor/net/document-editing/edit-documents-groupdocs-editor-net/)