Создайте docx с помощью Mail merge на C++

Высокоскоростная библиотека C++ для выполнения Mail merge для docx шаблонов и данных из пользовательского источника данных

Мощный, независимый от платформы Mail Merge API. Используйте Mail Merge API для разработки высокоуровневого ПО для платформы 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 Docs

С помощью нашего высококачественного 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 для 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:

  • Для 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

Получайте ежемесячные информационные бюллетени и предложения, доставляемые прямо на ваш почтовый ящик.