Word ドキュメントは、Microsoft Word やその他の文書処理ソフトで作成されたファイルです。世界中のほとんどの企業で使用されています。契約書、論文、パンフレット、手紙、履歴書、報告書など、さまざまな専門的な文書が Word ドキュメントの形で作成、保存されています。この記事では、Spire.Doc for C++ クラスライブラリを使用して、プログラム的に Word ドキュメントを作成または編集する方法を説明します。
Spire.Doc for C++ をインストールします
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Word ドキュメントを作成する
Spire.Doc for C++ を使用すると、1つまたは複数のセクションを持つ Word ドキュメントを作成し、段落、表、画像、リスト、ハイパーリンク、透かし、ヘッダー、フッター、コンテンツコントロール、コメントなどの様々な要素を追加できます。
次の手順では、セクションと3つの段落を持つ簡単な Word ドキュメントを作成する方法を紹介します。
- Document クラスのインスタンスを作成します。
- Document->AddSection() メソッドを使用して、ドキュメントにセクションを追加します。
- セクションのページ余白を設定します。
- Section->AddParagraph() メソッドを使用して、セクションに3つの段落を追加します。
- Paragraph->AppendText() メソッドを使用して、段落にテキストを追加します。
- ParagraphStyle のインスタンスを2つ作成し、2つの段落スタイルを作成します。そして、Paragraph->ApplyStyle() メソッドを使用して、それぞれの段落にスタイルを適用します。
- Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
- C++
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
int main()
{
//Documentのインスタンスを作成する
intrusive_ptr<Document> doc = new Document();
//ドキュメントにセクションを追加する
intrusive_ptr<Section> section = doc->AddSection();
//ページの余白を設定する
section->GetPageSetup()->GetMargins()->SetAll(72);
//セクションにタイトル段落を追加する
intrusive_ptr<Paragraph> titlePara = section->AddParagraph();
//タイトル段落にテキストを追加する
titlePara->AppendText(L"Spire.Doc for C++の紹介");
//セクションに本文の段落を追加する
intrusive_ptr<Paragraph> bodyPara1 = section->AddParagraph();
//本文の段落にテキストを追加する
bodyPara1->AppendText(L"Spire.Doc for C++ は、C++ アプリケーションで Word 文書の作成、読み取り、書き込み、変換、結合、分割、比較を高速かつ高品質に行うために開発者向けに特別に設計されたプロフェッショナルな Word ライブラリです。");
//セクションにもう1つ本文の段落を追加する
intrusive_ptr<Paragraph> bodyPara2 = section->AddParagraph();
//本文の段落にテキストを追加する
bodyPara2->AppendText(L"Spire.Doc for C++ を使用することで、ユーザーは Word の Doc/Docx を XML、RTF、EMF、TXT、XPS、EPUB、HTML、SVG、ODT に、またはその逆に変換できます。Spire.Doc for C++ は、Word の Doc/Docx を PDF に変換したり、HTML を画像に変換することもサポートしています。");
//スタイルを作成し、タイトル段落に適用する
intrusive_ptr<ParagraphStyle> style1 = new ParagraphStyle(doc);
style1->SetName(L"titleStyle");
style1->GetCharacterFormat()->SetBold(true);
style1->GetCharacterFormat()->SetTextColor(Color::GetBlue());
style1->GetCharacterFormat()->SetFontName(L"Yu Gothic UI");
style1->GetCharacterFormat()->SetFontSize(16);
doc->GetStyles()->Add(style1);
titlePara->ApplyStyle(L"titleStyle");
//スタイルを作成し、本文の段落に適用する
intrusive_ptr<ParagraphStyle> style2 = new ParagraphStyle(doc);
style2->SetName(L"paraStyle");
style2->GetCharacterFormat()->SetFontName(L"Yu Gothic UI");
style2->GetCharacterFormat()->SetFontSize(12);
doc->GetStyles()->Add(style2);
bodyPara1->ApplyStyle(L"paraStyle");
bodyPara2->ApplyStyle(L"paraStyle");
//タイトルと本文の段落に水平方向の配置を設定する
titlePara->GetFormat()->SetHorizontalAlignment(HorizontalAlignment::Center);
bodyPara1->GetFormat()->SetHorizontalAlignment(HorizontalAlignment::Justify);
bodyPara2->GetFormat()->SetHorizontalAlignment(HorizontalAlignment::Justify);
//タイトルと本文の段落の後に間隔を設定する
titlePara->GetFormat()->SetAfterSpacing(10);
bodyPara1->GetFormat()->SetAfterSpacing(10);
//ドキュメントを保存する
doc->SaveToFile(L"Wordドキュメントの作成.docx", FileFormat::Docx2013);
doc->Dispose();
}
既存の Word ドキュメントを編集する
Spire.Doc for C++ は、Word ドキュメントの作成以外にも、既存の Word ドキュメントを編集することも可能です。例えば、ドキュメント内の既存の要素を変更したり、ドキュメントに新しい要素を追加したりすることができます。
次の手順では、Word ドキュメント内の特定の段落のテキストを変更する方法を説明します。
- Document のインスタンスを作成します。
- Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- Document->GetSections()->GetItem(int index) メソッドを使用して、ドキュメント内の特定のセクションにそのインデックスでアクセスします。
- Section->GetParagraphs()->GetItem(int index) メソッドを使用して、セクション内の特定の段落にそのインデックスでアクセスします。
- Paragraph->SetText() メソッドを使用して、段落のテキストを変更します。
- Document->SaveToFile() メソッドを使用してドキュメントを保存します。
- C++
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
int main()
{
//Documentのインスタンスを作成する
intrusive_ptr<Document> doc = new Document();
//Wordドキュメントを読み込む
doc->LoadFromFile(L"Wordドキュメントの作成.docx");
//ドキュメント内の最初のセクションにアクセスする
intrusive_ptr<Section> section = doc->GetSections()->GetItemInSectionCollection(0);
//第1項の第2段落にアクセスする
intrusive_ptr<Paragraph> para = section->GetParagraphs()->GetItemInParagraphCollection(1);
//段落テキストを変更する
para->SetText(L"この段落を更新しました。");
//ドキュメントを保存する
doc->SaveToFile(L"Wordドキュメントの編集.docx", FileFormat::Docx2013);
doc->Dispose();
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。