チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
PowerPoint プレゼンテーションを画像に変換すると、様々なメリットがあります。例えば、PowerPoint ソフトウェアにアクセスできない他の人とコンテンツを共有することが容易になります。また、元のプレゼンテーションの書式が保持されるため、コンテンツが意図通りに表示されます。さらに、コンテンツが他者によって編集や変更されることを防止できます。この記事では、Spire.Presentation for C++ を使用して C++ で PowerPoint を画像(JPG, PNG, SVG)に変換する方法について説明します。
Spire.Presentation for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Presentation for C++ を C++ アプリケーションに統合する方法
Spire.Presentation for C++ には、PowerPoint プレゼンテーションのスライドを JPG または PNG 画像に変換できる ISlide->SaveAsImage() メソッドが用意されています。詳細な手順は次のとおりです。
#include "Spire.Presentation.o.h"
using namespace Spire::Presentation;
using namespace std;
int main()
{
//Presentationクラスのインスタンスを初期化する
Presentation* ppt = new Presentation();
//PowerPointプレゼンテーションをロードする
ppt->LoadFromFile(L"Sample.pptx");
//プレゼンテーションのスライドコレクションを取得する
SlideCollection* slides = ppt->GetSlides();
//コレクション内のスライドをループする
for (int i = 0; i < slides->GetCount(); i++)
{
ISlide* slide = slides->GetItem(i);
//各スライドをPNG ファイルに保存する
Stream* image = slide->SaveAsImage();
image->Save(( L"Images\\ToImage_img_" + to_wstring(i) + L".png").c_str());
}
ppt->Dispose();
delete ppt;
}
ISlide->SaveAsImage(int width, int height) メソッドを使用して、PowerPoint プレゼンテーションのスライドを特定のサイズの JPG または PNG 画像に変換できます。詳細な手順は次のとおりです。
#include "Spire.Presentation.o.h"
using namespace Spire::Presentation;
using namespace std;
int main()
{
//Presentationクラスのインスタンスを初期化する
Presentation* ppt = new Presentation();
//PowerPointプレゼンテーションをロードする
ppt->LoadFromFile(L"Sample.pptx");
//プレゼンテーションのスライドコレクションを取得する
SlideCollection* slides = ppt->GetSlides();
//コレクション内のスライドをループする
for (int i = 0; i < slides->GetCount(); i++)
{
ISlide* slide = slides->GetItem(i);
//各スライドを600 x 400ピクセルのPNG画像として保存する
Stream* image = slide->SaveAsImage(600, 400);
image->Save(( L"ImagesWithSpecificSize\\ToImage_img_" + to_wstring(i) + L".png").c_str());
}
ppt->Dispose();
delete ppt;
}
ISlide->SaveToSVG() メソッドを使用して、PowerPoint プレゼンテーションのスライドを SVG 画像に変換することができます。詳細な手順は次のとおりです。
#include "Spire.Presentation.o.h"
using namespace Spire::Presentation;
using namespace std;
int main()
{
//Presentationクラスのインスタンスを初期化する
Presentation* ppt = new Presentation();
//PowerPointプレゼンテーションをロードする
ppt->LoadFromFile(L"Sample.pptx");
//プレゼンテーションのスライドコレクションを取得する
SlideCollection* slides = ppt->GetSlides();
//PowerPointをSVGに変換する際にノートを残すかどうかを設定する
ppt->SetIsNoteRetained(true);
//コレクション内のスライドをループする
for (int i = 0; i < slides->GetCount(); i++)
{
ISlide* slide = slides->GetItem(i);
//各スライドをSVG画像として保存する
Stream* svg = slide->SaveToSVG();
svg->Save((L"SvgImages\\ToSVG-" + to_wstring(i) + L".svg").c_str());
}
ppt->Dispose();
delete ppt;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PowerPoint のハイパーリンクとは、同じ/別の PowerPoint 内の他のスライドにや、特定の Web サイトにジャンプすることができるクリック可能なオブジェクトです。これらはスライドに追加のリソースを追加する素晴らしい方法であり、文書をよりインタラクティブにすることもできます。Spire.Presentation for Java では、PowerPoint 文書にハイパーリンクを追加するだけでなく、既存のハイパーリンクを変更または削除することもサポートしています。この記事では、上記の2つの機能をどのように実現するかを紹介します。
まず、Spire.Presentation for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>8.3.2</version>
</dependency>
</dependencies>
Spire.Presentation for Java を使用すると、既存のハイパーリンクのアドレスとアンカーテキストを変更することができます。以下は PowerPoint でハイパーリンクを変更する詳細な手順です。
import com.spire.presentation.*;
public class modifyHyperlink {
public static void main(String[] args) throws Exception {
//Presentationオブジェクトを作成し、PowerPointをロードする
Presentation presentation = new Presentation();
presentation.loadFromFile("test.pptx");
//ハイパーリンクを含む図形を取得する
IAutoShape shape = (IAutoShape)presentation.getSlides().get(0).getShapes().get(0);
//ハイパーリンクのテキストとアドレスを編集する
shape.getTextFrame().getTextRange().setText("Spire.Presentation for Java");
shape.getTextFrame().getTextRange().getClickAction().setAddress("https://jp.e-iceblue.com/introduce/spire-presentation-for-java.html");
//文書に保存する
presentation.saveToFile("ModifyHyperlink.pptx", FileFormat.PPTX_2013);
}
}
何らかの理由でハイパーリンクを削除する必要がある場合、Spire.Persentation for Java は TextCharacterProperties.setClickAction() メソッドを提供します。その値を null に設定すると、PowerPoint でハイパーリンクを削除できます。詳細な手順は次のとおりです。
import com.spire.presentation.*;
public class removeHyperlink {
public static void main(String[] args) throws Exception {
//Presentationオブジェクトを作成し、PowerPointをロードする
Presentation presentation = new Presentation();
presentation.loadFromFile("test.pptx");
//ハイパーリンクを含む図形を取得する
IAutoShape shape = (IAutoShape)presentation.getSlides().get(0).getShapes().get(0);
//クリックアクションをnullに設定してハイパーリンクを削除する
shape.getTextFrame().getTextRange().setClickAction(null);
//文書に保存する
presentation.saveToFile("RemoveHyperlink.pptx", FileFormat.PPTX_2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
複数の Excel ファイルに保存されたデータをまとめる必要がある場合、Excel のマージは重要なツールです。例えば、各四半期の売上レポートを1つのファイルに統合することで、全年のデータをより包括的なビューで確認することができます。また、Excel をマージすることで、複数のファイルを切り替えるのではなく、同じ組織化されたワークブックにデータを保存できます。これにより、作業プロセスが効率化され、生産性が向上します。この記事では、Spire.XLS for C++ を使用して C++ で Excel ファイルを マージする方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
複数のワークブックを1つにまとめるには、新しいワークブックを作成し、元のワークブックからシートをコピーして新しいワークブックに貼り付けます。具体的な手順は以下の通りです。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
using namespace std;
int main()
{
//ワークブックのパスをコンテナに入れる
std::vector<std::wstring> files = { L"File1.xlsx", L"File2.xlsx", L"File3.xlsx" };;
//Workbookオブジェクトを初期化して新しいワークブックを作成する
Workbook* newWorkbook = new Workbook();
newWorkbook->SetVersion(ExcelVersion::Version2013);
//デフォルトのシートを削除する
newWorkbook->GetWorksheets()->Clear();
//一時的な Workbook オブジェクトを初期化する
Workbook* tempWorkbook = new Workbook();
//コンテナ内のワークブックをループする
for (auto file : files)
{
//現在のワークブックをロードする
tempWorkbook->LoadFromFile(file.c_str());
//ワークブック内のすべてのシートをループする
for (int i = 0; i < tempWorkbook->GetWorksheets()->GetCount(); i++)
{
Worksheet* sheet = tempWorkbook->GetWorksheets()->Get(i);
//各シートを新しいワークブックにコピーする
(dynamic_cast<XlsWorksheetsCollection*>(newWorkbook->GetWorksheets()))->AddCopy(sheet, WorksheetCopyType::CopyAll);
}
}
//結果ブックをファイルに保存する
newWorkbook->SaveToFile(L"MergeExcelFiles.xlsx", ExcelVersion::Version2013);
newWorkbook->Dispose();
tempWorkbook->Dispose();
delete newWorkbook;
delete tempWorkbook;
}
元のシートから使用データ範囲をコピーして、目的のシートに貼り付けることで、複数のシートを1つのシートにマージできます。以下の手順では、同じワークブック内の2つのシートを1つにマージする方法を説明します。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
using namespace std;
int main()
{
//Workbookオブジェクトを初期化する
Workbook* workbook = new Workbook();
//Excelワークブックをロードする
workbook->LoadFromFile(L"Sample.xlsx");
//sheet1を取得する
Worksheet* sheet1 = workbook->GetWorksheets()->Get(0);
//sheet2を取得する
Worksheet* sheet2 = workbook->GetWorksheets()->Get(1);
//sheet2の使用範囲を取得する
CellRange* sourceRange = sheet2->GetAllocatedRange();
//sheet1の目的範囲を指定する
CellRange* destRange = sheet1->GetRange(sheet1->GetLastRow() + 1, 1);
//sheet2の使用範囲をsheet1の目的範囲にコピーする
sourceRange->Copy(destRange);
//sheet2を削除する
sheet2->Remove();
//結果ブックをファイルに保存する
workbook->SaveToFile(L"MergeExcelWorksheets.xlsx", ExcelVersion::Version2013);
workbook->Dispose();
delete workbook;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Presentation 8.3.2のリリースを発表できることをうれしく思います。このバージョンでは、PPTのグラフデータを編集する際にエラーダイアログが表示される問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREPPT-2205 | PPTのグラフデータを編集する際にエラーダイアログが表示される問題が修正されました。 |
Microsoft Wordの「検索と置換」は、ドキュメント編集時に重要な機能です。Word ドキュメント内の特定のテキストを素早く検索し、一度にすべてのインスタンスを置き換えることができます。これは、大規模な Word ドキュメントで情報を更新したり、つづりの間違いを修正する必要がある場合に特に役立ちます。この記事では、Spire.Doc for C++ を使用して C++ で Word 文書内のテキストを検索して置換する方法について説明します。
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
テキストを検索し、そのすべてのインスタンスを別のテキストに置き換えるには、Document->Replace() メソッドを使用してください。詳細な手順は次のとおりです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace std;
int main()
{
//Documentクラスのインスタンスを初期化する
Document* document = new Document();
//Wordドキュメントをロードする
document->LoadFromFile(L"Input.docx");
//特定のテキストを検索して、すべてのインスタンスを別のテキストに置換える
document->Replace(L"Spire.Doc", L"E-iceblue", false, true);
//結果ドキュメントを保存する
document->SaveToFile(L"ReplaceAllInstances.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
Spire.Doc for C++ は置換モードを変更できる Document->SetReplaceFirst() メソッドを提供します。変更後、すべてのインスタンスではなく最初のインスタンスを置き換えできます。詳細な手順は次のとおりです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace std;
int main()
{
//Documentクラスのインスタンスを初期化する
Document* document = new Document();
//Wordドキュメントをロードする
document->LoadFromFile(L"Input.docx");
//置換モードを変更する
document->SetReplaceFirst(true);
//テキストの最初のインスタンスを別のテキストに置き換える
document->Replace(L"Spire.Doc", L"E-iceblue", false, true);
//結果ドキュメントを保存する
document->SaveToFile(L"ReplaceFirstInstance.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
Document->Replace() メソッドを使用して、正規表現に一致するテキストを新しいテキストに置き換えることができます。そして、Regex インスタンスと新しいテキストをパラメータとしてメソッドに渡します。詳細な手順は次のとおりです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace std;
int main()
{
//Documentクラスのインスタンスを初期化する
Document* doc = new Document();
//Wordドキュメントをロードする
doc->LoadFromFile(L"Input1.docx");
//#で始まるテキストに一致する正規表現を作成する
Regex* regex = new Regex(L"\\#\\w+\\b");
//正規表現に一致するテキストを検索し、別のテキストに置き換える
doc->Replace(regex, L"E-iceblue");
//結果ドキュメントを保存する
doc->SaveToFile(L"ReplaceWithRegex.docx", FileFormat::Docx2013);
doc->Close();
delete doc;
}
Spire.Doc for C++ には、テキストを画像に置き換える直接的な方法はありません。しかし、テキストの位置に画像を挿入して、テキストを削除することで実現できます。詳細な手順は次のとおりです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace std;
int main()
{
//Documentクラスのインスタンスを初期化する
Document* doc = new Document();
//Wordドキュメントをロードする
doc->LoadFromFile(L"Input.docx");
//特定のテキストを検索し、結果をコンテナに格納する
vector<TextSelection*> selections = doc->FindAllString(L"Spire.Doc", true, true);
int index = 0;
TextRange* range = nullptr;
//コンテナのテキストをループする
for (auto selection : selections)
{
//画像をロードする
DocPicture* pic = new DocPicture(doc);
pic->LoadImageSpire(L"image.png");
//検索されたテキストを単一テキスト範囲として取得する
range = selection->GetAsOneRange();
//その段落内のテキスト範囲のインデックスを取得する
index = range->GetOwnerParagraph()->GetChildObjects()->IndexOf(range);
//インデックスに画像を挿入する
range->GetOwnerParagraph()->GetChildObjects()->Insert(index, pic);
//テキスト範囲を削除する
range->GetOwnerParagraph()->GetChildObjects()->Remove(range);
}
//結果ドキュメントを保存する
doc->SaveToFile(L"ReplaceWithImage.docx", FileFormat::Docx2013);
doc->Close();
delete doc;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel は、スプレッドシートの作成と管理に適したツールです。しかし、スプレッドシートを他人と共有することに関しては、Excel は最適とは言えないかもしれません。Excel の表を完成させたらすぐに PDF に変換すれば、スプレッドシートの書式を維持したまま、さまざまなデバイスで完璧に表示することができます。さらに、PDF は安全で、内容を不正に変更されないように暗号化することができます。
この記事では、Spire.XLS for C++ を使用して、Excel ワークブックを PDF に変換する方法と、Excel ワークシートを PDF に変換する方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ は、Workbook->SaveToFile(LPCWSTR_S filename, FileFormat fileFormat) メソッドを提供して、ワークブック全体を PDF、HTML、CSV、XPS などの他のフォーマットのファイルに変換します。また、変換時にセルの高さと幅を自動的に調整するかどうかなど、変換オプションを指定するための ConverterSetting クラスも提供されています。以下は、Excel ワークブックを PDF に変換するための手順です。
#include "Spire.Xls.o.h"
using namespace Spire::Xls;
int main() {
//Workbookのオブジェクトを作成する
Workbook* workbook = new Workbook();
//Excelファイルを読み込む
workbook->LoadFromFile(L"C:/家庭の予算.xlsx");
//変換時にページに合わせてワークシートを設定する
workbook->GetConverterSetting()->SetSheetFitToPage(true);
//ワークブックをPDFファイルとして保存する
workbook->SaveToFile(L"ExcelからPDFへの変換.pdf", FileFormat::PDF);
workbook->Dispose();
}
特定のワークシートを PDF として書き出すには、Workbook->GetWorksheets()->Get(index) メソッドでワークシートを取得し、Worksheet->SaveToPdf(LPCWSTR_S filename) メソッドを使用して PDF ファイルに保存する必要があります。以下、詳しい手順を説明します。
#include "Spire.Xls.o.h"
using namespace Spire::Xls;
int main() {
//Workbookのオブジェクトを作成する
Workbook* workbook = new Workbook();
//Excelファイルを読み込む
workbook->LoadFromFile(L"C:/家庭の予算.xlsx");
//変換時にページに合わせてワークシートを設定する
workbook->GetConverterSetting()->SetSheetFitToPage(true);
//指定したワークシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(3);
//ワークシートをPDFファイルとして保存する
sheet->SaveToPdf(L"ExcelからPDFへの変換.pdf");
workbook->Dispose();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.PDF for Java 9.3.11のリリースを発表できることをうれしく思います。今回の更新では、画像を圧縮する際にメモリの消費量が最適化されました。同時に、PDFからHTMLとSVGへの変換機能が強化されました。また、透かしを追加した後に文書のサイズが大幅に増大するなど、既知の問題も修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREPDF-5221 | 画像を圧縮する際にメモリ消費量を最適化しました。 |
Bug | SPIREPDF-5727 | 透かしを追加すると文書のサイズが大幅に増大する問題が修正されました。 |
Bug | SPIREPDF-5828 | 変換されたPDF/A 1 AドキュメントがveraPDFで検証に失敗する問題が修正されました。 |
Bug | SPIREPDF-5842 | PDFをHtmlに変換する際にプログラムが「NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5861 | PDFをSVGに変換する際に文字が重なる問題が修正されました。 |
Bug | SPIREPDF-5880 | PDF編集権限の削除が無効だった問題が修正されました。 |
Spire.XLS Standard Edition 12.12のリリースを発表できることを嬉しく思います。このリリースでは、文書を保存する際にプログラムが「Some parts of this workbook may have been repaired or discarded」をスローした問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREXLS-4571 | 文書を保存する際にプログラムが「Some parts of this workbook may have been repaired or discarded」をスローした問題が修正されました。 |
Word では、他の人が情報を入力するために使用できるフォームを作成することができます。記入可能なフォームは、多くの人からデータやフィードバックを収集する必要があり、書式に一貫性があることを確認したい場合に特に便利です。ここでは、Word ドキュメントで記入可能なフォームを作成するために必要なツールを紹介します。
Word のコンテンツコントロールは、ユーザーが構造化ドキュメントを作成するために使用することができるコンテンツ コンテナです。 構造化されたドキュメントは、ドキュメントのどこにコンテンツが表示されるかを制御します。Word 2013 では、基本的に10種類のコンテンツ コントロールが利用可能です。この記事では、Spire.Doc for C++ を使用して、以下の7つの一般的なコンテンツ コントロールで構成される Word ドキュメントに記入可能なフォームを作成する方法を説明します。
コンテンツ コントロール | 説明 |
テキスト | 書式なしテキストを入力できるようにします。 |
リッチ テキスト | 書式付きテキストのほか、表、画像、コンテンツ コントロールなどのコンテンツを入力できるようにします。 |
画像 | 1枚の画像を入力できるようにします。 |
ドロップダウン リスト | 定義済みのリストから項目を選択できるようにします。 |
コンボ ボックス | 定義済みのリストから項目を選択したり、ユーザー自身が情報を入力したりすることができるようにします。 |
チェック ボックス | ユーザーがチェックできるようにします。 |
日付選択 | カレンダーから日付を選択できるようにします。 |
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Spire.Doc for C++ が提供する StructureDocumentTagInline クラスは、段落内の DrawingML やフィールドなどのインライン構造用の構造化ドキュメントタグを作成するために使用されます。 このクラスの下にある SDTProperties と SDTContent プロパティでは、対応する構造化ドキュメントタグのプロパティとコンテンツを設定することができます。 以下は、Word ドキュメントで記入可能なフォームを作成するための詳細な手順です。
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentのオブジェクトを作成する
Document* doc = new Document();
//セクションを追加する
Section* section = doc->AddSection();
//表を追加する
Table* table = section->AddTable(true);
table->ResetCells(7, 2);
//1列目のセルにテキストを追加する
Paragraph* paragraph = table->GetRows()->GetItem(0)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"テキスト コンテンツ コントロール");
paragraph = table->GetRows()->GetItem(1)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"リッチ テキスト コンテンツ コントロール");
paragraph = table->GetRows()->GetItem(2)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"画像コンテンツ コントロール");
paragraph = table->GetRows()->GetItem(3)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"ドロップダウン リスト コンテンツコントロール");
paragraph = table->GetRows()->GetItem(4)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"チェック ボックス コンテンツ コントロール");
paragraph = table->GetRows()->GetItem(5)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"コンボ ボックス コンテンツ コントロール");
paragraph = table->GetRows()->GetItem(6)->GetCells()->GetItem(0)->AddParagraph();
paragraph->AppendText(L"日付選択コンテンツ コントロール");
//セル(0,1)にテキスト コンテンツ コントロールを追加する
paragraph = table->GetRows()->GetItem(0)->GetCells()->GetItem(1)->AddParagraph();
StructureDocumentTagInline* sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::Text);
sdt->GetSDTProperties()->SetAlias(L"テキスト");
sdt->GetSDTProperties()->SetTag(L"テキスト");
sdt->GetSDTProperties()->SetIsShowingPlaceHolder(true);
SdtText* text = new SdtText(true);
text->SetIsMultiline(false);
sdt->GetSDTProperties()->SetControlProperties(text);
TextRange* tr = new TextRange(doc);
tr->SetText(L"ここをクリックまたはタップしてテキストを入力してください。");
sdt->GetSDTContent()->GetChildObjects()->Add(tr);
//セル(1,1)にリッチ テキスト コンテンツ コントロールを追加する
paragraph = table->GetRows()->GetItem(1)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::RichText);
sdt->GetSDTProperties()->SetAlias(L"リッチ テキスト");
sdt->GetSDTProperties()->SetTag(L"リッチ テキスト");
sdt->GetSDTProperties()->SetIsShowingPlaceHolder(true);
text = new SdtText(true);
text->SetIsMultiline(false);
sdt->GetSDTProperties()->SetControlProperties(text);
tr = new TextRange(doc);
tr->SetText(L"ここをクリックまたはタップしてテキストを入力してください。");
sdt->GetSDTContent()->GetChildObjects()->Add(tr);
//セル(2,1)に画像コンテンツ コントロールを追加する
paragraph = table->GetRows()->GetItem(2)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::Picture);
sdt->GetSDTProperties()->SetAlias(L"画像");
sdt->GetSDTProperties()->SetTag(L"画像");
SdtPicture* sdtPicture = new SdtPicture();
sdt->GetSDTProperties()->SetControlProperties(sdtPicture);
DocPicture* pic = new DocPicture(doc);
pic->LoadImageSpire(L"C:/Workspace.png");
sdt->GetSDTContent()->GetChildObjects()->Add(pic);
//セル(3,1)にドロップダウン リスト コンテンツ コントロールを追加する
paragraph = table->GetRows()->GetItem(3)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
sdt->GetSDTProperties()->SetSDTType(SdtType::DropDownList);
sdt->GetSDTProperties()->SetAlias(L"ドロップダウン リスト");
sdt->GetSDTProperties()->SetTag(L"ドロップダウン リスト");
paragraph->GetChildObjects()->Add(sdt);
SdtDropDownList* sddl = new SdtDropDownList();
sddl->GetListItems()->Add(new SdtListItem(L"アイテムを選択してください。", L"1"));
sddl->GetListItems()->Add(new SdtListItem(L"アイテム 2", L"2"));
sddl->GetListItems()->Add(new SdtListItem(L"アイテム 3", L"3"));
sddl->GetListItems()->Add(new SdtListItem(L"アイテム 4", L"4"));
sdt->GetSDTProperties()->SetControlProperties(sddl);
tr = new TextRange(doc);
tr->SetText(sddl->GetListItems()->GetItem(0)->GetDisplayText());
sdt->GetSDTContent()->GetChildObjects()->Add(tr);
//セル(4,1)にチェック ボックス コンテンツ コントロールを2つ追加する
paragraph = table->GetRows()->GetItem(4)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::CheckBox);
SdtCheckBox* scb = new SdtCheckBox();
sdt->GetSDTProperties()->SetControlProperties(scb);
tr = new TextRange(doc);
sdt->GetChildObjects()->Add(tr);
scb->SetChecked(false);
paragraph->AppendText(L" オプション 1");
paragraph = table->GetRows()->GetItem(4)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::CheckBox);
scb = new SdtCheckBox();
sdt->GetSDTProperties()->SetControlProperties(scb);
tr = new TextRange(doc);
sdt->GetChildObjects()->Add(tr);
scb->SetChecked(false);
paragraph->AppendText(L" オプション 2");
//セル(5,1)にコンボ ボックス コンテンツ コントロールを追加する。
paragraph = table->GetRows()->GetItem(5)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::ComboBox);
sdt->GetSDTProperties()->SetAlias(L"コンボ ボックス");
sdt->GetSDTProperties()->SetTag(L"コンボ ボックス");
SdtComboBox* cb = new SdtComboBox();
cb->GetListItems()->Add(new SdtListItem(L"アイテムを選択してください。"));
cb->GetListItems()->Add(new SdtListItem(L"アイテム 2"));
cb->GetListItems()->Add(new SdtListItem(L"アイテム 3"));
sdt->GetSDTProperties()->SetControlProperties(cb);
tr = new TextRange(doc);
tr->SetText(cb->GetListItems()->GetItem(0)->GetDisplayText());
sdt->GetSDTContent()->GetChildObjects()->Add(tr);
//セル(6,1)に日付選択コンテンツ コントロールを追加する
paragraph = table->GetRows()->GetItem(6)->GetCells()->GetItem(1)->AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph->GetChildObjects()->Add(sdt);
sdt->GetSDTProperties()->SetSDTType(SdtType::DatePicker);
sdt->GetSDTProperties()->SetAlias(L"日付選択");
sdt->GetSDTProperties()->SetTag(L"日付選択");
SdtDate* date = new SdtDate();
date->SetCalendarType(CalendarType::Default);
date->SetDateFormatSpire(L"yyyy.MM.dd");
date->SetFullDate(DateTime::GetNow());
sdt->GetSDTProperties()->SetControlProperties(date);
tr = new TextRange(doc);
tr->SetText(L"クリックまたはタップして日付を入力してください。");
sdt->GetSDTContent()->GetChildObjects()->Add(tr);
paragraph->GetStyle()->GetCharacterFormat()->SetFontName(L"Yu Gothic UI");
//ユーザーがフォームフィールドを編集することのみを許可するように設定する
doc->Protect(ProtectionType::AllowOnlyFormFields, L"password");
//ドキュメントを保存する
doc->SaveToFile(L"Output/フォーム.docx", FileFormat::Docx2013);
doc->Close();
delete doc;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.SpreadSheet 7.3.0のリリースを発表できることを嬉しく思います。このバージョンは、フィルターの並べ替え項目を非表示にする機能をサポートしました。また、列および行のタイトルバーを非表示にすると、現在アクティブなシートのみが有効になっていた問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPREADSHEET-213 | フィルターの並べ替え項目を非表示にする機能をサポートしました。
this.spreadsheet1.HideSortItemInFilter = true; |
Bug | SPREADSHEET-214 | 列および行のタイトルバーを非表示にすると、現在アクティブなシートのみが有効になっていた問題が修正されました。 |