最も一般的で広く使用されているワードプロセッシングファイル形式は、** DOC DOCX 、およびODTです。有名なMicrosoftWordとOpenOfficeWriterはこれらの形式をサポートしており、通常、ドキュメントのドラフトにはこれらの形式を使用します。したがって、開発者として、アプリケーション内のWord文書をプログラムで編集する必要があります。この記事では、ドキュメント編集に.NETAPIを使用してC#でWordドキュメントを編集する方法**について説明します。

この記事で簡単に説明したトピックは次のとおりです。

Word文書の編集と自動化のための.NETAPI

この記事では、C#の例でGroupDocs.Editor for .NETを使用します。これは、ドキュメント編集APIであり、開発者がWYSIWYG HTMLエディターを使用してさまざまなドキュメント形式をロード、編集、および保存できるようにします。 APIは、ワードプロセッシングドキュメント形式に加えて、スプレッドシート、プレゼンテーション、HTML、XML、TXT、DSV、TSV、およびCSV形式の編集をサポートしています。

ダウンロードセクションからDLLまたはMSIインストーラーをダウンロードするか、NuGetを介して.NETアプリケーションにAPIをインストールします。

PM> Install-Package GroupDocs.Editor

C#でWord文書を編集する

APIを設定した直後に、Word文書の編集にすばやく進むことができます。次の手順では、ワードプロセッシングドキュメントを編集できます。

  • Word文書をロードします。
  • オプションで適宜編集してください。
  • 編集したドキュメントを保存します。

#Wordドキュメントを読み込む

まず、ドキュメントが保護されている場合は、ドキュメントのパスとパスワードを入力してドキュメントを読み込みます。

using (FileStream fs = File.OpenRead(inputFilePath))
{
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
}

Word文書を編集する

ロード後、必要に応じてロードされたドキュメントを編集できます。ここでは、以下のC#コードを使用して、Wordドキュメント内の単語「document」のすべての出現箇所を「編集されたドキュメント」に置き換えています。

    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;
        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;
            string editedContent = originalContent.Replace("document", "edited document");
        }
    }

編集したWord文書をオプションで保存する

最後に、編集したドキュメントの内容を保存しながら、さまざまなオプションをさらに設定できます。これらのオプションには以下が含まれます。ページネーション、パスワード、ロケール、保護、またはメモリ最適化の設定を設定します。上記のオプションを下記のコードで設定し、編集したドキュメントをパスワードで保護された読み取り専用のDOCXファイルとして保存します。

using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
    Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
    saveOptions.EnablePagination = true;
    saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
    saveOptions.OptimizeMemoryUsage = true;
    saveOptions.Password = "password";
    saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
    using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
    {
        editor.Save(afterEdit, outputStream, saveOptions);
    }
}

完全なコード

便宜上、上記で説明した完全なC#の例を示しています。これは、Word文書を編集してから、DOCX形式で保存します。

// GroupDocsドキュメント編集および自動化APIを使用してC#でWordドキュメントを編集する
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // ドキュメントの編集
    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;

        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;

            string editedContent = originalContent.Replace("document", "edited document");
            // ドキュメントを保存
            using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
            {
                WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
                Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
                            
                saveOptions.EnablePagination = true;
                saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
                saveOptions.OptimizeMemoryUsage = true;
                saveOptions.Password = "password";
                saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");

                using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
                {
                    editor.Save(afterEdit, outputStream, saveOptions);
                }
            }
        }
    }
}

以下は、上記のコードを使用してすべてのオカレンスが置き換えられた出力ドキュメントです。

エディタAPIを使用して編集されたdocxドキュメント

出力ドキュメント-すべてのオカレンスが置き換えられます

結論

結論として、.NETアプリケーション用のドキュメント編集APIを使用したC#でのWordドキュメントの編集について説明しました。 APIをWYSIWYGエディターで使用して、ドキュメントを視覚的に編集できます。その後、独自のドキュメントエディタを構築するために先に進むことができます。同様に、編集機能を.NETアプリケーションに統合することもできます。

詳細、オプション、および例については、ドキュメントおよびGitHubリポジトリにアクセスしてください。さらに質問がある場合は、フォーラムのサポートにお問い合わせください。

関連記事

関連項目