C++のMail mergeを使用してdocxを作成します

docxテンプレートとカスタムデータソースからのデータのMail merge操作を実行するための高速C++ライブラリ

私たちのソリューションは、強力なプラットフォームに依存しないAPIを提供します。 Mail mergeドキュメントAPIを使用して、 C++プラットフォーム用の高レベルのソフトウェアを開発します。これは、 WordおよびPDF形式のテンプレートとカスタムデータソースからのデータをマージし、 C++を使用して結果をDOCX, PDF, HTMLおよびその他の一般的な形式にさらにエクスポートするための強力なソフトウェアソリューションです。

コード スニペットを表示

C++ での Word ファイルと Excel データの Mail merge 印刷

Excel データとの差し込み印刷を実行する高速 C++ ライブラリ。

Mail Merge SDK を使用すると、Word テンプレートに Excel シートのデータを入力できます。 Mail Merge API に基づいて、 C++ を使用して独自のソフトウェア ソリューションを作成できます。これにより、Excel からの電子メールを自動化し、Excel データを使用してレポートを生成できます。

Excel から Word に Mail merge 印刷するには、 C++ で Mail merge 操作を実行し、結果をサポートされている Word 形式にエクスポートします。

C++ を使用した Excel から Word への Mail merge 印刷

強力な Mail merge API を使用すると、Word Merge テンプレートと Excel のデータだけを使用して、 C++ でパーソナライズされたドキュメントを作成できます。

Excel から Mail merge を使用する方法:

  • Excel からのデータが挿入される特別な差し込みフィールドを含む Word テンプレートを作成します。
  • Excel ドキュメントを CSV ファイルに変換してから、API による解析に適した JSON ファイルに変換します。
  • ExcelからCSV、JSONに変換したWordテンプレートとデータをメールマージする操作を行います。

Google ドキュメントとの Mail merge

高忠実度の Mail merge API を使用すると、Google ドキュメントで Mail merge 操作を実行することもできます。必要なデータを Word および Excel 形式でダウンロードするだけで、Word テンプレートに差し込みフィールドが含まれていることを確認し、前のセクションで説明したアルゴリズムと同様に、 C++ で差し込み印刷操作を実行します。

この強力な Mail merge Web ツールを試すには、特別な差し込みフィールドを含む Word テンプレートと、上記のように変換された Excel のデータを読み込みます。コードを実行した後、 C++ を使用して結果を任意の形式にエクスポートします。

次の例は、 Mail merge 操作を実行して C++ に Word ドキュメントを生成する方法を示しています。

C++のdocxテンプレートを使用してMail merge操作を実行します
Mail mergeテンプレートをアップロードする
コードを実行する
Mail mergeデータのアップロード
リストからターゲットフォーマットを選択します
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;
};
コードを実行する

docxファイルでのMail mergeの使用方法

  1. Aspose.Words for C++インストールします。
  2. C++プロジェクトにライブラリ参照を追加(ライブラリをインポート)します。
  3. マージフィールドを使用してdocxマージテンプレートを作成します。
  4. C++のテンプレートファイルを開きます。
  5. Execute()メソッドを呼び出し、マージフィールドとその値をそこに渡します。
  6. Save()メソッドを呼び出し、必要な拡張子を持つ出力ファイル名を渡します。
  7. Mail merge操作の結果をWordファイルとして取得します。

C++ Mail mergeを使用するライブラリdocx

Aspose.Words for C++ を開発者環境にインストールするための3つのオプションがあります。ニーズに合ったものを選択し、ステップバイステップの手順に従ってください。

システム要求

このC++ライブラリを使用して、 Microsoft Windows 、Linux、およびmacOSオペレーティングシステムでソフトウェアを開発できます。

  • Linuxには GCC >= 6.3.0 および Clang >= 3.9.1
  • Xcode >= 12.5.1 、macOSには Clang と libc++

LinuxまたはmacOS用のソフトウェアを開発する場合は、製品ドキュメント fontconfig および mesa-glu オープンソースパッケージ)に関する情報を確認してください。

その他のサポートされているファイル形式

他のファイル形式に対してMail merge操作を実行できます。

5%

Aspose製品アップデートを購読する

メールボックスに直接配信される月刊ニュースレターとオファーを入手してください。

© Aspose Pty Ltd 2001-2024. 全著作権所有。