チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»docnetdocumentoperation

Displaying items by tag: docnetdocumentoperation

脚注は、ページの下部に配置される注釈です。MS Word では、脚注を使用して参考文献を引用したり、説明を追加したり、コメントを残したりすることができますが、メインテキストには影響を与えません。この記事では、Spire.Doc for .NET を使用して、C# で Word ドキュメントに脚注を挿入または削除する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントで段落の後に脚注を挿入

Spire.Doc for .NET の Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用すると、指定した段落の後に脚注を挿入できます。詳細な手順は以下の通りです。

  • Document インスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 最初のセクションを取得し、そのセクション内の指定した段落を取得します。
  • Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用して、段落の末尾に脚注を追加します。
  • 脚注のテキスト内容、フォント、色を設定し、脚注の上付き文字の番号の形式を設定します。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace AddFootnote
{
    class Program
    {
        static void Main(string[] args)
        {
            // Documentインスタンスを作成
            Document document = new Document();

            // サンプルのWordドキュメントをロード
            document.LoadFromFile("Sample.docx");

            // 最初のセクションを取得
            Section section = document.Sections[0];

            // セクション内の指定した段落を取得
            Paragraph paragraph = section.Paragraphs[6];

            // 段落の末尾に脚注を追加
            Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

            // 脚注のテキスト内容を設定
            TextRange text = footnote.TextBody.AddParagraph().AppendText("さらに、近代に入ると、デジタル通貨や仮想通貨の登場により、通貨の形態は大きく変化し、グローバルな取引のスピードと範囲が拡大した。");

            // テキストのフォントと色を設定
            text.CharacterFormat.FontName = "Yu Gothic UI";
            text.CharacterFormat.FontSize = 12;
            text.CharacterFormat.TextColor = Color.DarkBlue;

            // 脚注上付き番号のフォーマットを設定
            footnote.MarkerCharacterFormat.FontName = "Arial";
            footnote.MarkerCharacterFormat.FontSize = 15;
            footnote.MarkerCharacterFormat.Bold = true;
            footnote.MarkerCharacterFormat.TextColor = Color.DarkCyan;

            // 結果のドキュメントを保存
            document.SaveToFile("output/段落に脚注を追加.docx", FileFormat.Docx);
            document.Close();
        }
    }
}

C#:Word ドキュメントに脚注を挿入・削除する方法

Word ドキュメントでテキストの後に脚注を挿入

Spire.Doc for .NET を使用すると、ドキュメント内の任意の場所にある特定のテキストの後に脚注を挿入することもできます。詳細な手順は以下の通りです。

  • Document インスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.FindString() メソッドを使用して、指定したテキストを検索します。
  • TextSelection.GetAsOneRange() メソッドを使用して、指定したテキストの範囲を取得します。
  • TextRange.OwnerParagraph プロパティを使用して、そのテキスト範囲がある段落を取得します。
  • Paragraph.ChildObjects.IndexOf() メソッドを使用して、段落内のテキスト範囲の位置インデックスを取得します。
  • Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用して脚注を追加し、Paragraph.ChildObjects.Insert() メソッドを使用して指定したテキストの後に脚注を挿入します。
  • 脚注のテキスト内容、フォント、色を設定し、脚注の上付き文字の番号の形式を設定します。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace InsertFootnote
{
    class Program
    {
        static void Main(string[] args)
        {
            // Documentインスタンスを作成
            Document document = new Document();

            // サンプルのWordドキュメントをロード
            document.LoadFromFile("Sample.docx");

            // 指定したテキスト文字列を検索
            TextSelection selection = document.FindString("通貨制度", false, true);

            // 指定したテキストの範囲を取得
            TextRange textRange = selection.GetAsOneRange();

            // テキスト範囲がある段落を取得
            Paragraph paragraph = textRange.OwnerParagraph;

            // 段落内のテキスト範囲の位置インデックスを取得
            int index = paragraph.ChildObjects.IndexOf(textRange);

            // 脚注を追加
            Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

            // 指定した段落の後に脚注を挿入
            paragraph.ChildObjects.Insert(index + 1, footnote);

            // 脚注のテキスト内容を設定
            TextRange text = footnote.TextBody.AddParagraph().AppendText("通貨制度は、国や地域が採用する通貨の管理と流通に関する枠組みであり、これには中央銀行や政府の金融政策が含まれ、経済の安定と成長を支える役割を果たします。");

            // テキストのフォントと色を設定
            text.CharacterFormat.FontName = "Yu Gothic UI";
            text.CharacterFormat.FontSize = 12;
            text.CharacterFormat.TextColor = Color.DarkBlue;

            // 脚注上付き番号のフォーマットを設定
            footnote.MarkerCharacterFormat.FontName = "Arial";
            footnote.MarkerCharacterFormat.FontSize = 15;
            footnote.MarkerCharacterFormat.Bold = true;
            footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;

            // 結果のドキュメントを保存
            document.SaveToFile("output/テキストに脚注を追加.docx", FileFormat.Docx);
            document.Close();
        }
    }
}

C#:Word ドキュメントに脚注を挿入・削除する方法

Word ドキュメントから脚注を削除

既存の脚注を手動で検索して削除するのは時間と労力がかかります。以下の手順で、すべての脚注を一度にプログラムで削除することができます。

  • Document インスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.Sections プロパティを使用して、指定したセクションを取得します。
  • セクション内の各段落を巡回し、脚注を検索します。
  • Paragraph.ChildObjects.RemoveAt() メソッドを使用して脚注を削除します。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace RemoveFootnote
{
    class Program
    {
        static void Main(string[] args)
        {
            // Documentインスタンスを作成
            Document document = new Document();

            // サンプルのWordドキュメントをロード
            document.LoadFromFile("output/テキストに脚注を追加.docx");

            // 最初のセクションを取得
            Section section = document.Sections[0];

            // セクション内の各段落を巡回して脚注を探す
            foreach (Paragraph para in section.Paragraphs)
            {
                int index = -1;
                for (int i = 0, cnt = para.ChildObjects.Count; i < cnt; i++)
                {
                    ParagraphBase pBase = para.ChildObjects[i] as ParagraphBase;
                    if (pBase is Footnote)
                    {
                        index = i;
                        break;
                    }
                }

                if (index > -1)

                    // 脚注を削除
                    para.ChildObjects.RemoveAt(index);
            }

            // 結果のドキュメントを保存
            document.SaveToFile("output/脚注を削除.docx", FileFormat.Docx);
            document.Close();
        }
    }
}

C#:Word ドキュメントに脚注を挿入・削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 脚注

Word 文書のコメント機能は、文書の内容を変更したり中断させたりせずに、他の人が自分の意見や見解を追加するのに最適な方法を提供します。誰かが文書にコメントを付けると、文書の作成者や他のユーザーがそのコメントに返信し、文書を同時に閲覧していなくても、コメントを通じて議論を行うことができます。この記事では、Spire.Doc for .NET を使用して C# で Word 文書にコメントを追加、返信、または削除する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word 文書内の段落にコメントを追加する

Spire.Doc for .NET では、Paragraph.AppendComment() メソッドを使用して特定の段落にコメントを追加できます。以下はその手順です:

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[int] プロパティを通じて、文書内の特定のセクションにアクセスします。
  • Section.Paragraphs[int] プロパティを通じて、セクション内の特定の段落にアクセスします。
  • Paragraph.AppendComment() メソッドを使用して段落にコメントを追加します。
  • Comment.Format.Author プロパティを使用してコメントの作成者を設定します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace AddComments
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Documentクラスのインスタンスを初期化する
            Document document = new Document();
            // Wordドキュメントを読み込む
            document.LoadFromFile("Sample.docx");

            // ドキュメント内の最初のセクションを取得する
            Section section = document.Sections[0];

            // セクション内の最初の段落を取得する
            Paragraph paragraph = section.Paragraphs[4];
            // 段落にコメントを追加する
            Comment comment = paragraph.AppendComment("LEDスクリーン技術の詳細については、この段落で説明する必要がある。");
            // コメントの作成者を設定する
            comment.Format.Author = "Janny";
            comment.Format.Initial = "J";

            // 結果のドキュメントを保存する
            document.SaveToFile("output/段落にコメントを追加.docx");
            document.Close();
        }
    }
}

C#:Word 文書にコメントを追加、返信、削除する方法

Word 文書内のテキストにコメントを追加する

Paragraph.AppendComment() メソッドは段落全体にコメントを追加するためのものです。デフォルトでは、コメントマークは段落の末尾に配置されます。特定のテキストにコメントを追加するには、Document.FindString() メソッドを使用してテキストを検索し、そのテキストの先頭と末尾にコメントマークを配置する必要があります。以下はその手順です:

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.FindString() メソッドを使用して文書内の特定のテキストを検索します。
  • 見つかったテキストの先頭と末尾に、それぞれコメント開始マークと終了マークを作成します。
  • Comment クラスのインスタンスを初期化して新しいコメントを作成し、コメントの内容と作成者を設定します。
  • 見つかったテキストの所有段落を取得し、コメントを子オブジェクトとして段落に追加します。
  • テキスト範囲の前にコメント開始マークを、テキスト範囲の後にコメント終了マークを挿入します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace AddCommentsToText
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Documentクラスのインスタンスを初期化する
            Document document = new Document();
            // Wordドキュメントを読み込む
            document.LoadFromFile("Sample.docx");

            // 特定の文字列を検索する
            TextSelection find = document.FindString("紙幣", false, true);

            // コメント開始マークとコメント終了マークを作成する
            CommentMark commentmarkStart = new CommentMark(document);
            commentmarkStart.Type = CommentMarkType.CommentStart;
            CommentMark commentmarkEnd = new CommentMark(document);
            commentmarkEnd.Type = CommentMarkType.CommentEnd;

            // コメントを作成し、その内容と作成者を設定する
            Comment comment = new Comment(document);
            comment.Body.AddParagraph().Text = "紙幣がいつどこで発明されたのか、詳細を知りたい。";
            comment.Format.Author = "Sam";

            // 見つかった文字列を単一のテキスト範囲として取得する
            TextRange range = find.GetAsOneRange();

            // テキスト範囲の所有者段落を取得する
            Paragraph para = range.OwnerParagraph;

            // 段落にコメントを追加する
            para.ChildObjects.Add(comment);

            // 段落内のテキスト範囲のインデックスを取得する
            int index = para.ChildObjects.IndexOf(range);

            // コメントマーク開始とコメントマーク終了にコメントIDを設定する
            commentmarkStart.CommentId = comment.Format.CommentId;
            commentmarkEnd.CommentId = comment.Format.CommentId;

            // テキスト範囲の前にコメント開始マークを挿入する
            para.ChildObjects.Insert(index, commentmarkStart);
            // テキスト範囲の後にコメント終了マークを挿入する
            para.ChildObjects.Insert(index + 2, commentmarkEnd);

            // 結果のドキュメントを保存する
            document.SaveToFile("output/テキストにコメントを追加.docx");
            document.Close();
        }
    }
}

C#:Word 文書にコメントを追加、返信、削除する方法

Word 文書内のコメントに返信する

既存のコメントに返信を追加するには、Comment.ReplyToComment() メソッドを使用します。以下はその手順です:

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Comments[int] プロパティを通じて、文書内の特定のコメントにアクセスします。
  • Comment クラスのインスタンスを初期化して新しいコメントを作成し、コメントの内容と作成者を設定します。
  • Comment.ReplyToComment() メソッドを使用して、新しいコメントを特定のコメントに対する返信として追加します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Fields;

namespace ReplyToComments
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Documentクラスのインスタンスを初期化する
            Document document = new Document();
            // Wordドキュメントを読み込む
            document.LoadFromFile("output/テキストにコメントを追加.docx");

            // ドキュメント内の最初のコメントを取得する
            Comment comment1 = document.Comments[0];

            // 新しいコメントを作成し、その作成者と内容を指定する
            Comment replyComment1 = new Comment(document);
            replyComment1.Format.Author = "Jack";
            replyComment1.Body.AddParagraph().AppendText("次のバージョンで追加する予定だ。");

            // 最初のコメントへの返信としてコメントを追加する
            comment1.ReplyToComment(replyComment1);

            // 結果のドキュメントを保存する
            document.SaveToFile("output/コメントへの返信.docx", FileFormat.Docx2013);
            document.Close();
        }
    }
}

C#:Word 文書にコメントを追加、返信、削除する方法

Word 文書内のコメントを削除する

Spire.Doc for .NET では、Document.Comments.RemoveAt(int) メソッドを使用して特定のコメントを削除したり、Document.Comments.Clear() メソッドを使用してすべてのコメントを削除したりすることができます。以下はその手順です:

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Comments.RemoveAt(int) メソッドまたは Document.Comments.Clear() メソッドを使用して、文書内の特定のコメントまたはすべてのコメントを削除します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • C#
using Spire.Doc;

namespace DeleteComments
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Documentクラスのインスタンスを初期化する
            Document document = new Document();
            // Wordドキュメントを読み込む
            document.LoadFromFile("output/コメントへの返信.docx");

            // ドキュメント内の最初のコメントを削除する
            //document.Comments.RemoveAt(0);

            // ドキュメント内のすべてのコメントを削除する
            document.Comments.Clear();

            // 結果のドキュメントを保存する
            document.SaveToFile("output/コメントを削除.docx", FileFormat.Docx2013);
            document.Close();
        }
    }
}

C#:Word 文書にコメントを追加、返信、削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in コメント

差し込み印刷は、Word ドキュメントの強力な機能で、単一のテンプレートドキュメントとデータソースから手紙、ラベル、封筒、さらには電子メールなどの複数のドキュメントを作成できます。これにより、各手紙を個別に書くことなく、多くの受信者にパーソナライズされた対応を送信することができます。

この記事では、Spire.Doc for .NET を使用して Word ドキュメントで差し込み印刷を実行する方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

差し込み印刷の構成要素の理解

  • メインドキュメント:これはテンプレートファイルで、手紙、ラベル、その他のドキュメントのデザインを行い、プレースホルダー(差し込みフィールドとも呼ばれる)を含めます。これらのフィールドはデータソースからのデータで埋められます。
  • データソース:これは、メインドキュメントに挿入する情報を含むスプレッドシートまたはデータベースです。Excel シート、Access データベース、CSV ファイル、XML ファイル、または単純なテキストファイルなどがあります。
  • 差し込みフィールド:これらはメインドキュメント内のプレースホルダーで、データソースの対応するレコードからデータが挿入されます。

差し込み印刷用の Word ド キュメントの作成

差し込みフィールドを含むテンプレート Word ドキュメントを生成するには、Microsoft Word などの Word エディターを使用することをお勧めします。Word エディターのビジュアルインターフェイスを使用すると、テンプレートの独自のレイアウト、書式設定、その他の要素をインタラクティブにデザインできます。

以下のスクリーンショットは、MS Word を使用して Word ドキュメントに差し込みフィールドを追加する方法を示しています。画像を差し込みフィールドに挿入したい場合は、「Image:FieldName」形式を使用してください。

C#:Word ドキュメントでの差し込み印刷の方法

C# コードを使用してテンプレート Word ドキュメントを作成する場合、次の手順に従います。

  • Document のインスタンスを作成します。
  • ドキュメントにセクションを追加します。
  • セクションに段落を追加します。
  • Paragraph.AppendField() メソッドを使用して段落に差し込みフィールドを追加します。
  • ドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;

namespace MailMerge
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an instance of Document class
            Document doc = new Document();

            // Add a section to the document
            Section section = doc.AddSection();
            // Add a paragraph to the section
            Paragraph para = section.AddParagraph();

            // Set the format
            section.PageSetup.Margins.All = 80;
            ParagraphStyle style = new ParagraphStyle(doc);
            style.Name = "Default Style";
            style.CharacterFormat.FontName = "Yu Gothic UI";
            style.CharacterFormat.FontSize = 12;
            doc.Styles.Add(style);
            para.ApplyStyle(style.Name);

            // Add text and mail merge fields to the paragraph
            para.AppendText("氏名:");
            para.AppendField("Name", FieldType.FieldMergeField);
            para.AppendBreak(BreakType.LineBreak);

            para.AppendText("メールアドレス:");
            para.AppendField("Email", FieldType.FieldMergeField);
            para.AppendBreak(BreakType.LineBreak);

            para.AppendText("アバター:");
            para.AppendField("Image:Avatar", FieldType.FieldMergeField);

            // Save the document
            doc.SaveToFile("Example.docx", FileFormat.Docx2019);
            doc.Close();
        }
    }
}

C#:Word ドキュメントでの差し込み印刷の方法

Word ドキュメントでの簡単な差し込み印刷

Spire.Doc は、Word ドキュメントで指定された差し込み印刷操作を実行するための MailMerge.Execute() メソッドを提供します。このメソッドは6つのオーバーロードがあり、DataTable、DataView、および文字列配列など、さまざまなデータソースから差し込み印刷を実行できます。

配列で提供されたデータを使用して差し込み印刷を実行する手順は次のとおりです。

  • Document のインスタンスを作成します。
  • Word ドキュメントを読み込みます。
  • フィールド名を保持する配列を定義します。
  • フィールドを埋めるために使用する値を保持する配列を定義します。
  • MailMerge.Execute() メソッドを使用してフィールドにデータを差し込みます。
  • ドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Reporting;
using System.Drawing;

namespace MailMergeInDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a Document object
            Document document = new Document();

            // Load the template Word document
            document.LoadFromFile("Example.docx");

            // Specify field names
            String[] fieldNames = {

                "Name",
                "Email",
                "Avatar"
            };

            // Specify values that'll be used to fill the fields
            String[] fieldValues = {

                "山田 太郎",
                "yamadatarou @email.com",
                "yamadatarou.png"
            };

            // Register an event which occurs when merging the image filed
            document.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);

            // Mail merge data to the document  
            document.MailMerge.Execute(fieldNames, fieldValues);

            // Save the document  
            document.SaveToFile("差し込み印刷.docx", FileFormat.Docx2019);

            // Dispose resources
            document.Dispose();
        }

        // Fill an image field with a picture
        private static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field)
        {
            string filePath = field.FieldValue as string;

            if (!string.IsNullOrEmpty(filePath))
            {
                field.Image = Image.FromFile(filePath);
            }
        }
    }
}

C#:Word ドキュメントでの差し込み印刷の方法

領域を指定した差し込み印刷

領域とは、データソースからのデータを挿入するドキュメント内の特定のエリアを指します。差し込み印刷は、データソース内の各レコードに対してその領域を繰り返します。Spire.Doc は、MailMerge.ExecuteWidthRegion() メソッドを提供し、領域を指定した差し込み印刷を実行します。

DataTable によって提供されたデータを使用して領域を指定した差し込み印刷を実行する手順は次のとおりです。

  • Document のインスタンスを作成します。
  • Word ドキュメントを読み込みます。
  • データソースとして使用する DataTable オブジェクトを作成します。
  • MailMerge.ExecuteWidthRegion() メソッドを使用して領域を指定した差し込み印刷を実行します。
  • ドキュメントを保存します。
  • C#
using Spire.Doc;
using System.Data;

namespace MailMergeWithGroup
{
    class Program
    {
        static void Main(string[] args)
        {

            // Document オブジェクトを作成する
            Document document = new Document();

            // テンプレートのWord文書を読み込む
            document.LoadFromFile("Sample.docx");

            // テーブル名を指定してデータテーブルを作成する
            DataTable table = new DataTable("会員");

            // テーブルにサンプルデータを追加する
            table.Columns.Add("名前");
            table.Columns.Add("登録日");
            table.Columns.Add("市");
            table.Rows.Add("佐藤 一郎", "2024-01-15", "東京");
            table.Rows.Add("鈴木 次郎", "2024-02-20", "大阪");
            table.Rows.Add("高橋 三郎", "2024-03-10", "名古屋");
            table.Rows.Add("田中 四郎", "2024-04-05", "札幌");
            table.Rows.Add("渡辺 五郎", "2024-05-01", "福岡");

            // 領域内でメールマージを実行する
            document.MailMerge.ExecuteWidthRegion(table);

            // 文書を保存する
            document.SaveToFile("output/地域との差し込み印刷.docx", FileFormat.Docx2019);

            // リソースを破棄する
            document.Dispose();
        }
    }
}

C#:Word ドキュメントでの差し込み印刷の方法

入れ子の領域を使った差し込み印刷

入れ子のグループの差し込み印刷は、入れ子の領域内の差し込みフィールドを、階層構造で整理されたデータで置換することによって機能します。入れ子の領域を使用すると、ある領域の内容が他の領域のデータに依存する、より複雑なレイアウトを作成できます。

XML ファイルのデータを使用して入れ子の領域で差し込み印刷を実行する手順は次のとおりです。

  • Document のインスタンスを作成します。
  • Word ドキュメントを読み込みます。
  • XML ファイルから DataSet オブジェクトにデータを読み込みます。
  • 差し込みフィールド情報を格納するために List<DictionaryEntry> オブジェクトを作成します。
  • 差し込みフィールド名と関連する式を指定する DicitionaryEntry オブジェクトを作成し、それをリストに追加します。
  • MailMerge.ExecuteWidthNestedRegion() メソッドを使用して入れ子の領域で差し込み印刷を実行します。
  • ドキュメントを保存します。
  • C#
using Spire.Doc;
using System.Collections;
using System.Data;

namespace MailMergeWithNestedRegions
{
    class Program
    {
        static void Main(string[] args)
        {
            // Documentオブジェクトを作成
            Document document = new Document();

            // テンプレートWord文書を読み込む
            document.LoadFromFile("Sample.docx");

            // XMLファイルからデータを読み込んでDataSetオブジェクトに格納
            DataSet dataSet = new DataSet();
            dataSet.ReadXml("Sample.xml");

            // マージフィールド情報を格納するListオブジェクトを作成
            List<DictionaryEntry> list = new List<DictionaryEntry>();

            // 2つのDictionaryEntryオブジェクトを作成し、リストに追加する(それぞれのオブジェクトはマージフィールド名と関連する式を指定)
            DictionaryEntry dictionaryEntry = new DictionaryEntry("会員紹介", string.Empty);
            list.Add(dictionaryEntry);

            dictionaryEntry = new DictionaryEntry("会員情報", "会員ID = %会員紹介.会員ID%");
            list.Add(dictionaryEntry);

            // ネストされた領域を持つメールマージ操作を実行
            document.MailMerge.ExecuteWidthNestedRegion(dataSet, list);

            // ファイルに保存
            document.SaveToFile("output/入れ子の領域での差し込み印刷.docx", FileFormat.Docx2019);

            // リソースを解放
            document.Dispose();
        }
    }
}

C#:Word ドキュメントでの差し込み印刷の方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 差し込み印刷

Word ドキュメントからコンテンツを読み取ることは、多くの仕事や学習タスクにおいて重要です。Word ドキュメントからページを読むことは、主要な情報を素早く閲覧し要約するのに役立ち、Word ドキュメントからセクションを読むことは、特定のトピックやセクションを深く理解するのに役立ちます。一方、Word ドキュメント全体を読むことは、全体的な情報を包括的に把握し、総合的な分析と理解を促進します。この記事では、Spire.Doc for .NET を使用して C# プロジェクト内で Word ドキュメントのページ、セクション、および全体のコンテンツを読み取る方法を紹介します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# で Word ドキュメントからページを読み取る

FixedLayoutDocument クラスと FixedLayoutPage クラスを使用すると、指定されたページのコンテンツを簡単に取得できます。抽出したコンテンツを表示しやすくするために、このサンプルコードでは読み取ったコンテンツを新しい Word ドキュメントに保存します。詳細な手順は以下の通りです:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • FixedLayoutDocument オブジェクトを作成する。
  • ドキュメント内のページの FixedLayoutPage オブジェクトを取得する。
  • FixedLayoutPage.Section プロパティを介してページが存在するセクションにアクセスする。
  • セクション内のページの最初の段落のインデックス位置を取得する。
  • セクション内のページの最後の段落のインデックス位置を取得する。
  • 別の Document オブジェクトを作成する。
  • Document.AddSection() メソッドを使用して新しいセクションを追加する。
  • Section.CloneSectionPropertiesTo(newSection) メソッドを使用して、元のセクションのプロパティを新しいセクションにクローンする。
  • 元のドキュメントから新しいドキュメントにページのコンテンツをコピーする。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;
using Spire.Doc.Pages;
using Spire.Doc.Documents;

namespace SpireDocDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // 指定されたファイルからドキュメントの内容をロードする
            document.LoadFromFile("Sample.docx");

            // 固定レイアウトドキュメントオブジェクトを作成する
            FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);

            // 最初のページを取得する
            FixedLayoutPage page = layoutDoc.Pages[0];

            // ページが含まれているセクションを取得する
            Section section = page.Section;

            // ページの最初の段落を取得する
            Paragraph paragraphStart = page.Columns[0].Lines[0].Paragraph;
            int startIndex = 0;
            if (paragraphStart != null)
            {
                // セクション内の段落のインデックスを取得する
                startIndex = section.Body.ChildObjects.IndexOf(paragraphStart);
            }

            // ページの最後の段落を取得する
            Paragraph paragraphEnd = page.Columns[0].Lines[page.Columns[0].Lines.Count - 1].Paragraph;

            int endIndex = 0;
            if (paragraphEnd != null)
            {
                // セクション内の段落のインデックスを取得する
                endIndex = section.Body.ChildObjects.IndexOf(paragraphEnd);
            }

            // 新しいドキュメントオブジェクトを作成する
            Document newdoc = new Document();

            // 新しいセクションを追加する
            Section newSection = newdoc.AddSection();

            // 元のセクションのプロパティを新しいセクションにクローンする
            section.CloneSectionPropertiesTo(newSection);

            // 元のドキュメントのページの内容を新しいドキュメントにコピーする
            for (int i = startIndex; i <= endIndex; i++)
            {
                newSection.Body.ChildObjects.Add(section.Body.ChildObjects[i].Clone());
            }

            // 新しいドキュメントを指定されたファイルに保存する
            newdoc.SaveToFile("Wordのページから内容を読む.docx", Spire.Doc.FileFormat.Docx);

            // 新しいドキュメントを閉じてリソースを解放する
            newdoc.Close();
            newdoc.Dispose();

            // 元のドキュメントを閉じてリソースを解放する
            document.Close();
            document.Dispose();
        }
    }
}

C#:Word 文書からコンテンツを読み取る方法

C# で Word ドキュメントからセクションを読み取る

Document.Sections[index] プロパティを使用すると、ヘッダー、フッター、本文コンテンツを含む特定のセクションオブジェクトを取得できます。この例では、セクションのすべてのコンテンツを別のドキュメントにコピーする簡単な方法を提供します。詳細な手順は以下の通りです:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • Document.Sections[1] プロパティを使用してドキュメントの第二セクションを取得する。
  • 別の新しい Document オブジェクトを作成する。
  • Document.CloneDefaultStyleTo(newdoc) メソッドを使用して、元のドキュメントのデフォルトスタイルを新しいドキュメントにクローンする。
  • newdoc.Sections.Add(section.Clone()) メソッドを使用して、元のドキュメントの第二セクションのコンテンツを新しいドキュメントにクローンする。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;

namespace ReadWordSectionContent
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // ファイルからWordドキュメントをロードする
            document.LoadFromFile("Sample.docx");

            // ドキュメントの2番目のセクションを取得する
            Section section = document.Sections[1];

            // 新しいドキュメントオブジェクトを作成する
            Document newdoc = new Document();

            // デフォルトスタイルを新しいドキュメントにクローンする
            document.CloneDefaultStyleTo(newdoc);

            // 2番目のセクションを新しいドキュメントにクローンする
            newdoc.Sections.Add(section.Clone());

            // 新しいドキュメントをファイルに保存する
            newdoc.SaveToFile("Wordのセクションから内容を読む.docx", Spire.Doc.FileFormat.Docx);

            // 新しいドキュメントオブジェクトを閉じてリソースを解放する
            newdoc.Close();
            newdoc.Dispose();

            // 元のドキュメントオブジェクトを閉じてリソースを解放する
            document.Close();
            document.Dispose();
        }
    }
}

C#:Word 文書からコンテンツを読み取る方法

C# で Word ドキュメント全体のコンテンツを読み取る

この例では、元のドキュメントの各セクションを順に繰り返し処理し、各セクションを新しいドキュメントにクローンすることで、ドキュメント全体のコンテンツを読み取る方法を示します。詳細な手順は以下の通りです:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • 別の新しい Document オブジェクトを作成する。
  • Document.CloneDefaultStyleTo(newdoc) メソッドを使用して、元のドキュメントのデフォルトスタイルを新しいドキュメントにクローンする。
  • foreach ループを使用して元のドキュメントの各セクションを順に繰り返し処理し、各セクションを新しいドキュメントにクローンする。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;

namespace ReadWordDocumentContent
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // ファイルからWordドキュメントをロードする
            document.LoadFromFile("Sample.docx");

            // 新しいドキュメントオブジェクトを作成する
            Document newdoc = new Document();

            // デフォルトスタイルを新しいドキュメントにクローンする
            document.CloneDefaultStyleTo(newdoc);

            // 元のドキュメントの各セクションを反復処理して新しいドキュメントにクローンする
            foreach (Section sourceSection in document.Sections)
            {
                newdoc.Sections.Add(sourceSection.Clone());
            }

            // 新しいドキュメントをファイルに保存する
            newdoc.SaveToFile("Word文書からコンテンツを読み込む.docx", Spire.Doc.FileFormat.Docx);

            // 新しいドキュメントオブジェクトを閉じてリソースを解放する
            newdoc.Close();
            newdoc.Dispose();

            // 元のドキュメントオブジェクトを閉じてリソースを解放する
            document.Close();
            document.Dispose();
        }
    }
}

C#:Word 文書からコンテンツを読み取る方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

Word ドキュメントにページを追加、挿入、削除することは、コンテンツの管理と提示にとって重要です。Word に新しいページを追加または挿入することで、ドキュメントを拡張してより多くのコンテンツを収容し、より構造化され読みやすくすることができます。ページを削除することで、不必要な情報や誤ったコンテンツを取り除いてドキュメントを整理するのに役立ちます。この記事では、Spire.Doc for .NET を使用して C# プロジェクト内で Word ドキュメントにページを追加、挿入、または削除する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# を使用して Word ドキュメントにページを追加する

Word ドキュメントの末尾に新しいページを追加する手順は、まず最後のセクションを取得し、そのセクションの最後の段落の末尾に改ページを挿入して、後で追加されるコンテンツが新しいページに表示されるようにすることです。以下は詳細な手順です:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • Document.LastSection.Body を使用してドキュメントの最後のセクションの本文を取得する。
  • Paragraph.AppendBreak(BreakType.PageBreak) メソッドを呼び出して改ページを追加する。
  • 新しい ParagraphStyle オブジェクトを作成する。
  • Document.Styles.Add() メソッドを使用して新しい段落スタイルをドキュメントのスタイルコレクションに追加する。
  • 新しい Paragraph オブジェクトを作成し、テキストコンテンツを設定する。
  • Paragraph.ApplyStyle(ParagraphStyle.Name) メソッドを使用して、以前に作成した段落スタイルを新しい段落に適用する。
  • Body.ChildObjects.Add(Paragraph) メソッドを使用して新しい段落をドキュメントに追加する。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Pages;

namespace AddPageWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // ドキュメントをロードする
            document.LoadFromFile("Sample.docx");

            // ドキュメントの最後のセクションの本文を取得する
            Body body = document.LastSection.Body;

            // 本文の最後の段落の後に改ページを挿入する
            body.LastParagraph.AppendBreak(BreakType.PageBreak);

            // 新しい段落スタイルを作成する
            ParagraphStyle paragraphStyle = new ParagraphStyle(document);
            paragraphStyle.Name = "CustomParagraphStyle1";
            paragraphStyle.ParagraphFormat.LineSpacing = 12;
            paragraphStyle.ParagraphFormat.AfterSpacing = 8;
            paragraphStyle.CharacterFormat.FontName = "Yu Mincho";
            paragraphStyle.CharacterFormat.FontSize = 12;

            // ドキュメントのスタイルコレクションに段落スタイルを追加する
            document.Styles.Add(paragraphStyle);

            // 新しい段落を作成し、テキスト内容を設定する
            Paragraph paragraph = new Paragraph(document);
            paragraph.AppendText("弊社の Spire.Doc for .NET 製品をご利用いただきありがとうございます。試用版では生成されるドキュメントに赤い透かしが追加され、最初の10ページのみ他の形式に変換可能です。ライセンスを購入して適用すると、これらの透かしが削除され、機能制限が解除されます。");

            // 段落スタイルを適用する
            paragraph.ApplyStyle(paragraphStyle.Name);

            // 段落を本文のコンテンツコレクションに追加する
            body.ChildObjects.Add(paragraph);

            // もう一つの新しい段落を作成し、テキスト内容を設定する
            paragraph = new Paragraph(document);
            paragraph.AppendText("製品をより完全に体験していただくために、お客様には1ヶ月の無料仮ライセンスを提供しています。sales @e-iceblue.com にメールを送っていただければ、1営業日以内にライセンスをお送りします。");

            // 段落スタイルを適用する
            paragraph.ApplyStyle(paragraphStyle.Name);

            // 段落を本文のコンテンツコレクションに追加する
            body.ChildObjects.Add(paragraph);

            // 指定されたパスにドキュメントを保存する
            document.SaveToFile("Wordにページを追加.docx", FileFormat.Docx);

            // ドキュメントを閉じる
            document.Close();

            // ドキュメントオブジェクトのリソースを解放する
            document.Dispose();
        }
    }
}

C#:Word 文書にページを追加、挿入、削除する方法

C# を使用して Word ドキュメントにページを挿入する

新しいページを挿入する前に、セクション内の指定されたページコンテンツの終了位置インデックスを特定する必要があります。その後、この位置の後に新しいページのコンテンツを一つずつドキュメントに追加します。最後に、コンテンツを後続のページから分離するために改ページを追加することが重要です。詳細な手順は以下の通りです:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • FixedLayoutDocument オブジェクトを作成する。
  • ドキュメント内のページの FixedLayoutPage オブジェクトを取得する。
  • セクション内のページの最後の段落のインデックス位置を特定する。
  • 新しい ParagraphStyle オブジェクトを作成する。
  • Document.Styles.Add() メソッドを使用して新しい段落スタイルをドキュメントのスタイルコレクションに追加する。
  • 新しい Paragraph オブジェクトを作成し、テキストコンテンツを設定する。
  • Paragraph.ApplyStyle(ParagraphStyle.Name) メソッドを使用して、以前に作成した段落スタイルを新しい段落に適用する。
  • Body.ChildObjects.Insert(index, Paragraph) メソッドを使用して指定された位置に新しい段落を挿入する。
  • もう一つの新しい段落オブジェクトを作成し、そのテキストコンテンツを設定し、Paragraph.AppendBreak(BreakType.PageBreak) メソッドを呼び出して改ページを追加し、以前に作成した段落スタイルを適用し、次にこの段落をドキュメントに挿入する。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;
using Spire.Doc.Pages;
using Spire.Doc.Documents;

namespace InsertPageWord
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // サンプルドキュメントをファイルからロードする
            document.LoadFromFile("Sample.docx");

            // 固定レイアウトドキュメントオブジェクトを作成する
            FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);

            // 最初のページを取得する
            FixedLayoutPage page = layoutDoc.Pages[0];

            // ドキュメントの本文を取得する
            Body body = page.Section.Body;

            // 現在のページの最後の段落を取得する
            Paragraph paragraphEnd = page.Columns[0].Lines[page.Columns[0].Lines.Count - 1].Paragraph;

            // 終了インデックスを初期化する
            int endIndex = 0;
            if (paragraphEnd != null)
            {
                // 最後の段落のインデックスを取得する
                endIndex = body.ChildObjects.IndexOf(paragraphEnd);
            }

            // 新しい段落スタイルを作成する
            ParagraphStyle paragraphStyle = new ParagraphStyle(document);
            paragraphStyle.Name = "CustomParagraphStyle1";
            paragraphStyle.ParagraphFormat.LineSpacing = 12;
            paragraphStyle.ParagraphFormat.AfterSpacing = 8;
            paragraphStyle.CharacterFormat.FontName = "Yu Mincho";
            paragraphStyle.CharacterFormat.FontSize = 12;

            // ドキュメントのスタイルコレクションに段落スタイルを追加する
            document.Styles.Add(paragraphStyle);

            // 新しい段落を作成し、テキスト内容を設定する
            Paragraph paragraph = new Paragraph(document);
            paragraph.AppendText("弊社の Spire.Doc for .NET 製品をご利用いただきありがとうございます。試用版では生成されるドキュメントに赤い透かしが追加され、最初の10ページのみ他の形式に変換可能です。ライセンスを購入して適用すると、これらの透かしが削除され、機能制限が解除されます。");

            // 段落スタイルを適用する
            paragraph.ApplyStyle(paragraphStyle.Name);

            // 指定された位置に段落を挿入する
            body.ChildObjects.Insert(endIndex + 1, paragraph);

            // もう一つの新しい段落を作成する
            paragraph = new Paragraph(document);
            paragraph.AppendText("製品をより完全に体験していただくために、お客様には1ヶ月の無料仮ライセンスを提供しています。sales @e-iceblue.com にメールを送っていただければ、1営業日以内にライセンスをお送りします。");

            // 段落スタイルを適用する
            paragraph.ApplyStyle(paragraphStyle.Name);

            // 改ページを追加する
            paragraph.AppendBreak(BreakType.PageBreak);

            // 指定された位置に段落を挿入する
            body.ChildObjects.Insert(endIndex + 2, paragraph);

            // 指定されたパスにドキュメントを保存する
            document.SaveToFile("Wordにページを挿入.docx", Spire.Doc.FileFormat.Docx);

            // ドキュメントを閉じ、リソースを解放する
            document.Close();
            document.Dispose();
        }
    }
}

C#:Word 文書にページを追加、挿入、削除する方法

C# を使用して Word ドキュメントからページを削除する

ページのコンテンツを削除するには、まずドキュメント内のそのページの開始要素と終了要素のインデックス位置を特定します。その後、これらの要素を一つずつ順に削除するためにループを利用します。詳細な手順は以下の通りです:

  • Document オブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込む。
  • FixedLayoutDocument オブジェクトを作成する。
  • ドキュメント内の最初のページの FixedLayoutPage オブジェクトを取得する。
  • FixedLayoutPage.Section プロパティを使用してページが存在するセクションを取得する。
  • セクション内のページの最初の段落のインデックス位置を特定する。
  • セクション内のページの最後の段落のインデックス位置を特定する。
  • for ループを使用してページのコンテンツを一つずつ削除する。
  • Document.SaveToFile() メソッドを使用して結果のドキュメントを保存する。
  • C#
using Spire.Doc;
using Spire.Doc.Pages;
using Spire.Doc.Documents;

namespace DeletePageWord
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 新しいドキュメントオブジェクトを作成する
            Document document = new Document();

            // サンプルドキュメントをファイルからロードする
            document.LoadFromFile("Wordにページを挿入.docx");

            // 固定レイアウトドキュメントオブジェクトを作成する
            FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);

            // 2ページ目を取得する
            FixedLayoutPage page = layoutDoc.Pages[1];

            // ページのセクションを取得する
            Section section = page.Section;

            // 1ページ目の最初の段落を取得する
            Paragraph paragraphStart = page.Columns[0].Lines[0].Paragraph;
            int startIndex = 0;
            if (paragraphStart != null)
            {
                // 開始段落のインデックスを取得する
                startIndex = section.Body.ChildObjects.IndexOf(paragraphStart);
            }

            // 最後のページの最後の段落を取得する
            Paragraph paragraphEnd = page.Columns[0].Lines[page.Columns[0].Lines.Count - 1].Paragraph;

            int endIndex = 0;
            if (paragraphEnd != null)
            {
                // 終了段落のインデックスを取得する
                endIndex = section.Body.ChildObjects.IndexOf(paragraphEnd);
            }

            // 指定された範囲内のすべてのコンテンツを削除する
            for (int i = 0; i <= (endIndex - startIndex); i++)
            {
                section.Body.ChildObjects.RemoveAt(startIndex);
            }

            // 指定されたパスにドキュメントを保存する
            document.SaveToFile("Wordからページを削除.docx", Spire.Doc.FileFormat.Docx);

            // ドキュメントを閉じ、リソースを解放する
            document.Close();
            document.Dispose();
        }
    }
}

C#:Word 文書にページを追加、挿入、削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

Word ドキュメント内の数式は、数学的な概念や関係を表現するための重要なツールです。学術論文、科学レポート、またはその他の数学的内容を含む文書を書く際に、数式を組み込むことで複雑な数学的概念を効果的に伝え、文書の視覚的魅力と専門性を向上させることができます。本記事では、C# で Spire.Doc for .NET を使用して、Word ドキュメントに数式を挿入する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# で数式を Word ドキュメントに挿入する方法

Spire.Doc for .NET を使用すると、OfficeMath.FromLatexMathCode(string latexMathCode) メソッドおよび OfficeMath.FromMathMLCode(string mathMLCode) メソッドを使用して、LaTeX コードおよび MathML コードから数式を生成できます。詳細な手順は以下の通りです:

  • LaTeX コードと MathML コードからそれぞれの文字列配列を作成します。
  • Document インスタンスを作成し、Document.AddSection() メソッドを使用してセクションを追加します。
  • 文字列配列内の各 LaTeX コードを反復処理します。
  • OfficeMath.FromLatexMathCode(string latexMathCode) メソッドを使用して、LaTeX コードから数式を作成します。
  • セクションに段落を追加し、Paragraph.Items.Add() メソッドを使用して段落に数式を追加します。
  • 文字列配列内の各 MathML コードを反復処理します。
  • OfficeMath.FromMathMLCode(string mathMLCode) メソッドを使用して、MathML コードから数式を作成します。
  • セクションに段落を追加し、Paragraph.Items.Add() メソッドを使用して段落に数式を追加します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields.OMath;

namespace AddMathEquations
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // LaTeXコードから文字列配列を作成する
            string[] latexMathCode = {
                "x^{2}+\\sqrt{x^{2}+1}=2",
                "\\cos (2\\theta) = \\cos^2 \\theta - \\sin^2 \\theta",
                "k_{n+1} = n^2 + k_n^2 - k_{n-1}",
                "\\frac {\\frac {1}{x}+ \\frac {1}{y}}{y-z}",
                "\\int_0^ \\infty \\mathrm {e}^{-x} \\, \\mathrm {d}x",
                "\\forall x \\in X, \\quad \\exists y \\leq \\epsilon",
                "\\alpha, \\beta, \\gamma, \\Gamma, \\pi, \\Pi, \\phi, \\varphi, \\mu, \\Phi",
                "A_{m,n} = \\begin{pmatrix} a_{1,1} & a_{1,2} & \\cdots & a_{1,n} \\\\ a_{2,1} & a_{2,2} & \\cdots & a_{2,n} \\\\ \\vdots  & \\vdots  & \\ddots & \\vdots  \\\\ a_{m,1} & a_{m,2} & \\cdots & a_{m,n} \\end{pmatrix}",
            };

            // MathMLコードから文字列配列を作成する
            string[] mathMLCode = {
                "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>a</mi><mo>≠</mo><mn>0</mn></math>",
                "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>a</mi><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi><mo>=</mo><mn>0</mn></math>",
                "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>x</mi><mo>=</mo><mrow><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow></math>",
            };

            // Documentインスタンスを作成する
            Document doc = new Document();

            // セクションを追加する
            Section section = doc.AddSection();

            // セクションに段落を追加する
            Paragraph textPara = section.AddParagraph();
            textPara.AppendText("LaTeXコードからの数式の作成");
            textPara.ApplyStyle(BuiltinStyle.Heading1);
            textPara.Format.HorizontalAlignment = HorizontalAlignment.Left;

            // 文字列配列の各LaTeXコードを反復処理する
            for (int i = 0; i < latexMathCode.Length; i++)
            {
                // LaTeXコードから数式を作成する
                OfficeMath officeMath = new OfficeMath(doc);
                officeMath.FromLatexMathCode(latexMathCode[i]);
                // 数式をセクションに追加する
                Paragraph paragraph = section.AddParagraph();
                paragraph.Items.Add(officeMath);
                section.AddParagraph();
            }

            section.AddParagraph();

            // セクションに段落を追加する
            textPara = section.AddParagraph();
            textPara.AppendText("MathMLコードからの数式の作成");
            textPara.ApplyStyle(BuiltinStyle.Heading1);
            textPara.Format.HorizontalAlignment = HorizontalAlignment.Left;

            // 文字列配列の各MathMLコードを反復処理する
            for (int j = 0; j < mathMLCode.Length; j++)
            {
                // MathMLコードから数式を作成する
                OfficeMath officeMath = new OfficeMath(doc);
                officeMath.FromMathMLCode(mathMLCode[j]);
                // 数式をセクションに追加する
                Paragraph paragraph = section.AddParagraph();
                paragraph.Items.Add(officeMath);
                section.AddParagraph();
            }

            // 結果文書を保存する
            doc.SaveToFile("Word文書に数式を挿入.docx", FileFormat.Docx2019);
            doc.Dispose();
        }
    }
}

C#:Word ドキュメントに数式を挿入する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

MS Word では、元のドキュメントから内容を手動で切り取り、新しいドキュメントに貼り付けることで、ドキュメントを分割することができます。この作業は簡単ですが、特に長いドキュメントを扱う場合、非常に面倒で時間がかかることもあります。この記事では、Spire.Doc for .NET を使用して、プログラムによって Word ドキュメントを複数のファイルに分割する方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントを改ページで分割する

Word ドキュメントには、改ページによって区切られた複数のページを含めることができます。Word ドキュメントを改ページで分割するには、以下の手順とコードを参照してください。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Word ドキュメントを作成し、そこにセクションを追加します。
  • 元のドキュメントの各セクションにあるすべてのボディの子オブジェクトをループし、子オブジェクトが段落か表かを判断します。
  • セクションの子オブジェクトが表の場合は、Section.Body.ChildObjects.Add() メソッドを使用して、新規文書のセクションに直接追加します。
  • セクションの子オブジェクトが段落の場合、まず段落オブジェクトを新規文書のセクションに追加します。次に、段落の子オブジェクトをすべてループし、その子オブジェクトが改ページかどうかを判断します。
  • 段落の子オブジェクトが改ページであれば、そのインデックスを取得し、インデックスでその段落から改ページを削除します。
  • ドキュメントを保存し、上記の処理を繰り返します。
  • C#
  • VB.NET
using System;
using Spire.Doc;
using Spire.Doc.Documents;

namespace SplitByPageBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document original = new Document();

            //Wordドキュメントを読み込む
            original.LoadFromFile("C:/サンプル.docx");

            //新しいWordドキュメントを作成し、それにセクションを追加する
            Document newWord = new Document();
            Section section = newWord.AddSection();
            int index = 0;

            //元のドキュメントに含まれるすべてのセクションをループする
            foreach (Section sec in original.Sections)
            {
                //各セクションのボディーの子オブジェクトをすべてループする。
                foreach (DocumentObject obj in sec.Body.ChildObjects)
                {
                    if (obj is Paragraph)
                    {
                        Paragraph para = obj as Paragraph;
                        sec.CloneSectionPropertiesTo(section);

                        //元のドキュメントのセクションにある段落オブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(para.Clone());

                        //各段落のすべての子オブジェクトをループし、オブジェクトが改ページであるかどうかを判断する
                        foreach (DocumentObject parobj in para.ChildObjects)
                        {
                            if (parobj is Break && (parobj as Break).BreakType == BreakType.PageBreak)
                            {
                                //段落内の改ページのインデックスを取得する
                                int i = para.ChildObjects.IndexOf(parobj);

                                //その段落から改ページを削除する
                                section.Body.LastParagraph.ChildObjects.RemoveAt(i);

                                //新しいWordドキュメントを保存する
                                newWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx);
                                index++;

                                //新しいドキュメントを作成し、それにセクションを追加する
                                newWord = new Document();
                                section = newWord.AddSection();

                                //元のセクションの段落オブジェクトを、新しいドキュメントのセクションに追加する
                                section.Body.ChildObjects.Add(para.Clone());
                                if (section.Paragraphs[0].ChildObjects.Count == 0)
                                {
                                    //最初の空白の段落を削除する
                                    section.Body.ChildObjects.RemoveAt(0);
                                }
                                else
                                {
                                    //改ページ前の子オブジェクトを削除する
                                    while (i >= 0)
                                    {
                                        section.Paragraphs[0].ChildObjects.RemoveAt(i);
                                        i--;
                                    }
                                }
                            }
                        }
                    }
                    if (obj is Table)
                    {
                        //元セクションの表のオブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(obj.Clone());
                    }
                }
            }

            //ドキュメントを保存する
            newWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx);

        }
    }
}
Imports System
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace SplitByPageBreak
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim original As Document = New Document()

            'Wordドキュメントを読み込む
            original.LoadFromFile("C:/サンプル.docx")

            '新しいWordドキュメントを作成し、それにセクションを追加する
            Dim NewWord As Document = New Document()
            Dim section As Section = NewWord.AddSection()
            Dim index As Integer = 0

            '元のドキュメントに含まれるすべてのセクションをループする
            Dim sec As Section
            For Each sec In original.Sections
                '各セクションのボディーの子オブジェクトをすべてループする。
                Dim obj As DocumentObject
                For Each obj In sec.Body.ChildObjects
                    If TypeOf obj Is Paragraph Then
                        Dim para As Paragraph = obj As Paragraph 
                        sec.CloneSectionPropertiesTo(section)

                        '元のドキュメントのセクションにある段落オブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(para.Clone())

                        '各段落のすべての子オブジェクトをループし、オブジェクトが改ページであるかどうかを判断する
                        Dim parobj As DocumentObject
                        For Each parobj In para.ChildObjects
                            If TypeOf parobj Is Break && (parobj as Break).BreakType = BreakType.PageBreak Then
                                '段落内の改ページのインデックスを取得する
                                Dim i As Integer = para.ChildObjects.IndexOf(parobj)

                                'その段落から改ページを削除する
                                section.Body.LastParagraph.ChildObjects.RemoveAt(i)

                                '新しいWordドキュメントを保存する
                                NewWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx)
                                index = index + 1

                                '新しいドキュメントを作成し、それにセクションを追加する
                                NewWord = New Document()
                                section = NewWord.AddSection()

                                '元のセクションの段落オブジェクトを、新しいドキュメントのセクションに追加する
                                section.Body.ChildObjects.Add(para.Clone())
                                If section.Paragraphs(0).ChildObjects.Count = 0 Then
                                    '最初の空白の段落を削除する
                                    section.Body.ChildObjects.RemoveAt(0)
                                Else
                                    '改ページ前の子オブジェクトを削除する
                                    While i >= 0
                                        section.Paragraphs(0).ChildObjects.RemoveAt(i)
                                        i = i - 1
                                    End While
                                End If
                            End If
                        Next
                    End If
                    If TypeOf obj Is Table Then
                        '元セクションの表のオブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(obj.Clone())
                    End If
                Next
            Next

            'ドキュメントを保存する
            NewWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントを分割する方法

Word ドキュメントをセクション区切りで分割する

Word ドキュメントでは、セクションは、それ自身のページ書式を含むドキュメントの一部分です。複数のセクションを含むドキュメントの場合、Spire.Doc for .NET はセクションの区切りによるドキュメントの分割もサポートしています。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Document のオブジェクトを作成します。
  • 元の Word ドキュメントのすべてのセクションをループします。
  • Document.Sections.Clone() メソッドを使用して、元のドキュメントの各セクションをコピーします。
  • Document.Sections.Add() メソッドを使用して、コピーしたセクションを新しいセクションとして新しいドキュメントに追加します。
  • Document.SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using System;
using Spire.Doc;

namespace SplitBySectionBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document document = new Document();

            //Wordドキュメントを読み込む
            document.LoadFromFile("C:/サンプル.docx");

            //新しいDocumentのオブジェクトを作成する
            Document newWord;
            //元のドキュメント内のすべてのセクションをループする
            for (int i = 0; i < document.Sections.Count; i++)
            {
                newWord = new Document();

                //元ドキュメントの各セクションをコピーして、新しいセクションとして新ドキュメントに追加する
                newWord.Sections.Add(document.Sections[i].Clone());

                //ドキュメントを保存する
                newWord.SaveToFile(String.Format(@"test\出力_{0}.docx", i));
            }
        }
    }
}
Imports System
Imports Spire.Doc

Namespace SplitBySectionBreak
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim document As Document = New Document()

            'Wordドキュメントを読み込む
            document.LoadFromFile("C:/サンプル.docx")

            '新しいDocumentのオブジェクトを作成する
            Dim NewWord As Document
            '元のドキュメント内のすべてのセクションをループする
            Dim i As Integer
            For i = 0 To document.Sections.Count - 1 Step i + 1
                NewWord = New Document()

                '元ドキュメントの各セクションをコピーして、新しいセクションとして新ドキュメントに追加する
                NewWord.Sections.Add(document.Sections(i).Clone())

                'ドキュメントを保存する
                NewWord.SaveToFile(String.Format("test\出力_{0}.docx", i))
            Next
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントを分割する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

MS Word の「変更履歴」は、人がドキュメントに加えた改訂、修正、変更、編集、さらには提案やコメントを追跡できます。変更履歴をオンにした状態で改訂されたドキュメントを受け取った場合、元の内容を維持するために変更を元に戻すか、または変更を承諾するかを決定することができます。この記事では、Spire.Doc for .NET を使用して、プログラム的に Word ドキュメントのすべての変更履歴を承諾または元に戻す方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントの変更履歴をすべて承諾する

Spire.Doc for .NET が提供する Document.AcceptChanges() メソッドを使用すると、Word ドキュメント内のすべての変更を承諾することができます。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.AcceptChanges() メソッドを使用して、ドキュメントのすべての変更を承諾します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace AcceptTrackedChanges
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document doc = new Document();

            //Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx");

            //ドキュメントのすべての変更を承諾する
            doc.AcceptChanges();

            //ドキュメントを保存する
            doc.SaveToFile("変更履歴の承諾.docx", FileFormat.Docx);

        }
    }
}
Imports Spire.Doc

Namespace AcceptTrackedChanges
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim doc As Document = New Document()

            'Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx")

            'ドキュメントのすべての変更を承諾する
            doc.AcceptChanges()

            'ドキュメントを保存する
            doc.SaveToFile("変更履歴の承諾.docx", FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントで変更履歴を承諾・元に戻す方法

Word ドキュメントの変更履歴をすべて元に戻す

Spire.Doc for .NET は、Word ドキュメント内のすべての変更を元に戻すための Document.RejectChanges() メソッドも提供しています。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.RejectChanges() メソッドを使用して、ドキュメントのすべての変更を元に戻します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace RejectTrackedChanges
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document doc = new Document();

            //Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx");

            //ドキュメントのすべての変更点を元に戻す
            doc.RejectChanges();

            //ドキュメントを保存する
            doc.SaveToFile("変更履歴を元に戻す.docx", FileFormat.Docx);

        }
    }
}
Imports Spire.Doc

Namespace RejectTrackedChanges
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim doc As Document = New Document()

            'Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx")

            'ドキュメントのすべての変更点を元に戻す
            doc.RejectChanges()

            'ドキュメントを保存する
            doc.SaveToFile("変更履歴を元に戻す.docx", FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントで変更履歴を承諾・元に戻す方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

長い論文や研究報告書は、複数の人が共同で仕上げることが多いものです。時間を節約するために、各自が割り当てられた部分を別々のドキュメントで作業し、編集が終わった後にこれらのドキュメントを1つに統合することができます。この記事では、Word ドキュメントから別のドキュメントへ内容を手動でコピー&ペーストする方法とは別に、プログラム的に Spire.Doc for .NET を使用して Word ドキュメントを結合する以下の2つの方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

ファイル全体を挿入してドキュメントを結合する

Spire.Doc for .NET が提供する Document.InsertTextFromFile() メソッドは、他のドキュメントを完全にそのドキュメントに挿入して、Word ドキュメントを結合させます。このメソッドを使用すると、挿入されたドキュメントの内容は新しいページから開始されます。詳細な手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、元の Word ドキュメントを読み込みます。
  • Document.InsertTextFromFile() メソッドを使用して、元のドキュメントに別の Word ドキュメントを完全に挿入します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document document = new Document();

            //元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx);

            //元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx);

            //結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim document As Document = New Document()

            '元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx)

            '元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx)

            '結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

内容をコピーしてドキュメントを結合する

新しいページを始めずにドキュメントを結合したい場合、他のドキュメントの内容をクローンして、元のドキュメントの末尾に追加することができます。詳しい手順は以下の通りです。

  • 2つの Word ドキュメントを読み込みます。
  • 2番目のドキュメントをループして、Document.Sections プロパティを使用して、すべてのセクションを取得します。次に、すべてのセクションをループして、Section.Body.ChildObjects プロパティを使用して、その子オブジェクトを取得します。
  • Document.LastSection プロパティを使用して、最初のドキュメントで最後のセクションを取得します。そして、LastSection.Body.ChildObjects.Add() メソッドを使用して、子オブジェクトを最初のドキュメントで最後のセクションに追加します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //2つのWordドキュメントを読み込む
            Document doc1 = new Document("C:/宇宙の視野.docx");
            Document doc2 = new Document("C:/定義を超えた意味.docx");

            //2番目のドキュメントをループしてすべてのセクションを取得する
            foreach (Section section in doc2.Sections)
            {

                //2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                foreach (DocumentObject obj in section.Body.ChildObjects)
                {

                    //最初のドキュメントで最後のセクションを取得する
                    Section lastSection = doc1.LastSection;

                    //すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone());
                }
            }

            // 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            '2つのWordドキュメントを読み込む
            Dim doc1 As Document = New Document("C:/宇宙の視野.docx")
            Dim doc2 As Document = New Document("C:/定義を超えた意味.docx")

            '2番目のドキュメントをループしてすべてのセクションを取得する
            Dim section As Section
            For Each section In doc2.Sections

                '2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                Dim obj As DocumentObject
                For Each obj In section.Body.ChildObjects

                    '最初のドキュメントで最後のセクションを取得する
                    Dim lastSection As Section = doc1.LastSection

                    'すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone())
                Next
            Next

            ' 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作

文書プロパティ(メタデータとも呼ばれる)とは、文書に関する一連の情報のことです。すべての Word 文書には、タイトル、著者名、テーマ、キーワードなど、一連の組み込み文書プロパティが付属しています。内蔵の文書プロパティに加えて、Microsoft Word では、ユーザーが Word 文書にカスタム文書プロパティを追加することもできます。この記事では、Spire.Doc for .NET を使用して、C# と VB.NET で Word 文書に文書プロパティを追加する方法を説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word 文書に組み込みの文書プロパティを追加する

標準文書プロパティは、名前と値で構成されています。標準文書プロパティは、Microsoft Word によって事前に定義されているため、名前を設定または変更することはできませんが、値を設定または変更することは可能です。

次の手順では、Word 文書内の内蔵文書プロパティに値を設定する方法を説明します。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.BuiltinDocumentProperties プロパティで、文書の組み込み文書プロパティを取得します。
  • BuiltinDocumentProperties クラスの Title、Subject、Author プロパティを通じて、タイトル、テーマ、著者などの特定の文書プロパティに値を設定します。
  • Document.SaveToFile() メソッドを用いて、結果文書を保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace AddBuiltinDocumentProperties
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを作成する
            Document document = new Document();

            //Word文書の読み込み
            document.LoadFromFile("洞窟芸術.docx");

            //組み込みの文書プロパティを文書に追加する
            BuiltinDocumentProperties standardProperties = document.BuiltinDocumentProperties;
            standardProperties.Title = "洞窟芸術";
            standardProperties.Subject = "石器時代の芸術";
            standardProperties.Author = "Izzy Wisher";
            standardProperties.Company = "Aeon.co";
            standardProperties.Manager = "Nigel Warburton";
            standardProperties.Category = "芸術";
            standardProperties.Keywords = "洞窟芸術、石器時代";
            standardProperties.Comments = "石器時代の洞窟芸術を紹介した資料です。";

            //結果文書を保存する
            document.SaveToFile("標準文書プロパティ.docx", FileFormat.Docx2013);
        }
    }
}
Imports Spire.Doc

Namespace AddBuiltinDocumentProperties
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentクラスのインスタンスを作成する
            Dim document As Document = New Document()

            'Word文書の読み込み
            document.LoadFromFile("洞窟芸術.docx")

            '組み込みの文書プロパティを文書に追加する
            Dim standardProperties As BuiltinDocumentProperties = document.BuiltinDocumentProperties
            standardProperties.Title = "洞窟芸術"
            standardProperties.Subject = "石器時代の芸術"
            standardProperties.Author = "Izzy Wisher"
            standardProperties.Company = "Aeon.co"
            standardProperties.Manager = "Nigel Warburton"
            standardProperties.Category = "芸術"
            standardProperties.Keywords = "洞窟芸術、石器時代"
            standardProperties.Comments = "石器時代の洞窟芸術を紹介した資料です。"

            '結果文書を保存する
            document.SaveToFile("標準文書プロパティ.docx", FileFormat.Docx2013)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word 文書に文書のプロパティを追加する方法

Word 文書にカスタム文書プロパティを追加する

カスタム文書プロパティは、文書の作成者やユーザが定義することができます。各カスタム文書プロパティは、名前、値、データ型を含む必要があります。データ型は、この4つの種類(Text、Date、Number、Yes or No)のうちの1つです。

以下の手順は、Word 文書にさまざまなデータ型を持つカスタム文書プロパティを追加する方法を示しています。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.CustomDocumentProperties プロパティでドキュメントのカスタム文書プロパティを取得します。
  • CustomDocumentProperties.Add(string, object) メソッドを使用して、異なるデータ型を持つカスタム文書プロパティを文書に追加します。
  • Document.SaveToFile() メソッドを使用して、結果文書を保存します。
  • C#
  • VB.NET
using Spire.Doc;
using System;

namespace AddCustomDocumentProperties
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを作成する
            Document document = new Document();

            //Word文書の読み込み
            document.LoadFromFile("洞窟芸術.docx");

            //カスタム文書プロパティを文書に追加する
            CustomDocumentProperties customProperties = document.CustomDocumentProperties;
            customProperties.Add("文書ID", 1);
            customProperties.Add("許可取得の有無", true);
            customProperties.Add("許可者", "John Smith");
            customProperties.Add("許可日", DateTime.Today);

            //結果文書を保存する
            document.SaveToFile("カスタム文書プロパティ.docx", FileFormat.Docx2013);
        }
    }
}
Imports Spire.Doc
Imports System
Imports System.Reflection.Metadata

Namespace AddCustomDocumentProperties
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentクラスのインスタンスを作成する
            Dim document As Document = New Document()

            'Word文書の読み込み
            document.LoadFromFile("洞窟芸術.docx")

            'カスタム文書プロパティを文書に追加する
            Dim customProperties As CustomDocumentProperties = document.CustomDocumentProperties
            customProperties.Add("文書ID", 1)
            customProperties.Add("許可取得の有無", True)
            customProperties.Add("許可者", "John Smith")
            customProperties.Add("許可日", DateTime.Today)

            '結果文書を保存する
            document.SaveToFile("カスタム文書プロパティ.docx", FileFormat.Docx2013)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word 文書に文書のプロパティを追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 文書操作
1 / 2