Створити docx за допомогою Mail merge в C++

Високошвидкісна бібліотека C++ для виконання операції Mail merge для шаблонів docx та даних із користувацького джерела даних

Наше рішення забезпечує потужний незалежний від платформи API. Використовуйте наш API для документів для Mail merge для розробки програмного забезпечення високого рівня для платформи C++. Це потужне програмне рішення для об’єднання шаблонів у Word форматах і PDF і даних із користувацьких джерел даних і подальшого експорту результату до DOCX, PDF, HTML та інших популярних форматів за допомогою C++.

Переглянути фрагмент коду

Mail merge Word файлів і даних Excel у C++

Швидка бібліотека C++ для виконання злиття з даними Excel.

Наш Mail Merge SDK дозволяє заповнювати шаблон Word даними з Excel аркуша. На основі нашого Mail Merge API ви можете створити власне програмне рішення за допомогою C++, яке дозволяє вам автоматизувати електронні листи з Excel і створювати звіти з даними Excel.

Щоб виконати Mail merge з Excel у Word, просто виконайте операцію Mail merge в C++ і експортуйте результат до будь-якого підтримуваного Word формату.

Mail merge з Excel у Word за допомогою C++

За допомогою нашого потужного Mail merge API ви можете створювати персоналізовані документи в C++ використовуючи лише шаблон Word Merge та дані з Excel.

Як використовувати Mail merge з Excel:

  • Створіть шаблон Word зі спеціальними полями злиття, в які будуть вставлені ваші дані з Excel.
  • Перетворіть документ Excel у файл CSV, а потім у JSON файл, придатний для аналізу нашим API.
  • Виконайте операцію Mail, об’єднавши шаблон Word і дані, перетворені з Excel у CSV, а потім у JSON.

Mail merge з Документами Google

За допомогою нашого високоточного Mail merge API ви також можете виконувати операцію Mail merge з Документами Google. Просто завантажте необхідні дані у Word форматі і Excel, переконайтеся, що шаблон Word містить поля злиття, і виконайте операцію злиття в C++, подібно до алгоритму, описаного в попередньому розділі.

Щоб спробувати цей потужний веб-інструмент Mail merge, завантажте шаблон Word зі спеціальними полями злиття та даними з Excel, перетвореними, як описано вище. Після виконання коду експортуйте результат у будь-який формат за допомогою C++.

У наступному прикладі показано, як виконати операцію Mail merge для створення Word документа у C++:

Виконайте операцію Mail merge, використовуючи шаблон docx у C++
Завантажте шаблон 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;
};
Виконати код

Як використовувати Mail merge в docx файлах

  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++ у ваше середовище розробника. Будь ласка, виберіть той, який відповідає вашим потребам, і дотримуйтесь покрокових інструкцій:

Системні вимоги

Ви можете використовувати цю бібліотеку C++ для розробки програмного забезпечення в Microsoft Windows, Linux та macOS:

  • GCC >= 6.3.0 та Clang >= 3.9.1 потрібні для Linux
  • Xcode >= 12.5.1, для macOS потрібні Clang та libc++

Якщо ви розробляєте програмне забезпечення для Linux або macOS, будь ласка, перевірте інформацію про додаткові бібліотечні залежності (пакети з відкритим кодом fontconfig та mesa-glu) у документації до продукту.

Інші підтримувані формати файлів

Ви можете виконати операцію Mail merge для інших форматів файлів:

5%

Підпишіться на оновлення продукту Aspose

Отримуйте щомісячні інформаційні бюлетені та пропозиції безпосередньо на вашу поштову скриньку.

© Aspose Pty Ltd 2001-2024. Всі права захищені.