私たちのソリューションは、強力なプラットフォームに依存しないAPIを提供します。 Mail mergeドキュメントAPIを使用して、 C++プラットフォーム用の高レベルのソフトウェアを開発します。これは、 WordおよびPDF形式のテンプレートとカスタムデータソースからのデータをマージし、 C++を使用して結果をDOCX, PDF, HTMLおよびその他の一般的な形式にさらにエクスポートするための強力なソフトウェアソリューションです。
Excel データとの差し込み印刷を実行する高速 C++ ライブラリ。
Mail Merge SDK を使用すると、Word テンプレートに Excel シートのデータを入力できます。 Mail Merge API に基づいて、 C++ を使用して独自のソフトウェア ソリューションを作成できます。これにより、Excel からの電子メールを自動化し、Excel データを使用してレポートを生成できます。
Excel から Word に Mail merge 印刷するには、 C++ で Mail merge 操作を実行し、結果をサポートされている Word 形式にエクスポートします。
強力な Mail merge API を使用すると、Word Merge テンプレートと Excel のデータだけを使用して、 C++ でパーソナライズされたドキュメントを作成できます。
Excel から Mail merge を使用する方法:
高忠実度の Mail merge API を使用すると、Google ドキュメントで Mail merge 操作を実行することもできます。必要なデータを Word および Excel 形式でダウンロードするだけで、Word テンプレートに差し込みフィールドが含まれていることを確認し、前のセクションで説明したアルゴリズムと同様に、 C++ で差し込み印刷操作を実行します。
この強力な Mail merge Web ツールを試すには、特別な差し込みフィールドを含む Word テンプレートと、上記のように変換された Excel のデータを読み込みます。コードを実行した後、 C++ を使用して結果を任意の形式にエクスポートします。
次の例は、 Mail merge 操作を実行して C++ に Word ドキュメントを生成する方法を示しています。
dotnet add package Aspose.Words.Cpp
コピー
using namespace Aspose::Words;
using namespace Aspose::Cells;
auto doc = MakeObject<Document>(u"Input1.docx");
auto workbook = Factory::CreateIWorkbook(new String("Input2.xlsx"));
auto worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
auto dataRange = worksheet->GetICells()->GetMaxDisplayIRange();
auto dataTable = worksheet->GetICells()->ExportArray(
0, 0, dataRange->GetRowCount(), dataRange->GetColumnCount());
auto customersDataSource = MakeObject<BaseOperations::CustomerMailMergeDataSource>(dataTable);
doc->get_MailMerge()->Execute(customersDataSource);
doc->Save(u"Output.docx");
class ExcelDataSource : public IMailMergeDataSource
{
public:
System::String convertCellsString(String cellsValue)
{
auto valCh = cellsValue.charValue();
auto convertedString = System::String(valCh);
String::deleteCharValue(valCh);
return convertedString;
}
System::String get_TableName() override
{
return nullptr;
}
CustomerMailMergeDataSource(
intrusive_ptr<Aspose::Cells::Systems::Array2D<Aspose::Cells::Systems::Object*>> data)
{
dataIn = data;
for (int i = 0; i < data->At(0)->GetLength(); i++) {
auto fieldName = data->GetValue(0, i)->ToString();
m.insert({ convertCellsString(fieldName), i });
i++;
}
mRecordIndex = 0;
}
bool GetValue(System::String fieldName, SharedPtr<System::Object>& fieldValue) override
{
auto value = dataIn->GetValue(mRecordIndex, m.at(fieldName))->ToString();
if (value == new String(""))
return false;
fieldValue = System::ObjectExt::Box<System::String>(convertCellsString(value));
return true;
}
bool MoveNext() override
{
mRecordIndex++;
return mRecordIndex < dataIn->GetLength();
}
SharedPtr<IMailMergeDataSource> GetChildDataSource(System::String tableName) override
{
return nullptr;
}
intrusive_ptr<Aspose::Cells::Systems::Array2D<Aspose::Cells::Systems::Object*>> dataIn;
std::unordered_map<System::String, int> m;
int mRecordIndex;
};
Aspose.Words for C++ を開発者環境にインストールするための3つのオプションがあります。ニーズに合ったものを選択し、ステップバイステップの手順に従ってください。
このC++ライブラリを使用して、 Microsoft Windows 、Linux、およびmacOSオペレーティングシステムでソフトウェアを開発できます。
LinuxまたはmacOS用のソフトウェアを開発する場合は、製品ドキュメント fontconfig および mesa-glu オープンソースパッケージ)に関する情報を確認してください。
他のファイル形式に対してMail merge操作を実行できます。