ایجاد docx با استفاده از Mail merge در C++

کتابخانه C++ پرسرعت برای اجرای عملیات Mail merge برای الگوها و داده‌های docx از منبع داده سفارشی

راه حل ما یک API مستقل از پلت فرم قدرتمند ارائه می دهد. از API سند Mail merge ما برای توسعه نرم افزار سطح بالا برای پلتفرم C++ استفاده کنید. این یک راه حل نرم افزاری قدرتمند برای ادغام قالب ها در قالب های Word و PDF و داده ها از منابع داده سفارشی و صدور بیشتر نتیجه به DOCX, PDF, HTML و سایر فرمت های محبوب با استفاده از C++ است.

مشاهده قطعه کد

Mail merge فایل Word و داده های اکسل را در C++

کتابخانه سریع C++ برای ادغام Mail با داده های Excel.

Mail Merge SDK به شما امکان می دهد یک الگوی Word را با داده های خود از برگه اکسل پر کنید. بر اساس Mail Merge API ما، می‌توانید راه‌حل نرم‌افزاری خود را با استفاده از C++ ایجاد کنید، که به شما امکان می‌دهد ایمیل‌های اکسل را خودکار کنید و با داده‌های اکسل گزارش تولید کنید.

برای Mail merge از Excel به Word، به سادگی عملیات Mail merge را در C++ و نتیجه را به هر فرمت Word پشتیبانی شده صادر کنید.

Mail merge از Excel به Word با استفاده از C++

با Mail merge API قدرتمند ما، می توانید اسناد شخصی سازی شده را در C++ فقط با استفاده از یک الگوی Word Merge و داده های Excel ایجاد کنید.

نحوه استفاده از Mail merge از Excel:

  • یک قالب Word با فیلدهای ادغام ویژه ایجاد کنید که داده های شما از اکسل در آن درج می شود.
  • سند اکسل را به فایل CSV و سپس به فایل JSON مناسب برای تجزیه توسط API ما تبدیل کنید.
  • عملیات Mail ادغام قالب Word و داده های تبدیل شده از Excel به CSV و سپس به JSON را انجام دهید.

Mail merge با Google Docs

با Mail merge API با وفاداری بالا، می‌توانید عملیات Mail merge را با Google Docs نیز انجام دهید. فقط داده های لازم را با فرمت ورد و اکسل دانلود کنید، مطمئن شوید که قالب Word حاوی فیلدهای ادغام است و عملیات ادغام Mail را در C++ مشابه الگوریتم توضیح داده شده در قسمت قبل انجام دهید.

برای امتحان این ابزار قدرتمند وب Mail merge، یک الگوی Word را با فیلدهای ادغام ویژه و داده‌های اکسل که همانطور که در بالا توضیح داده شد، بارگذاری کنید. پس از اجرای کد، نتیجه را با استفاده از 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 برای لینوکس مورد نیاز است
  • Xcode >= 12.5.1، Clang و libc++ برای macOS مورد نیاز است

در صورت توسعه نرم افزار برای لینوکس یا macOS، لطفاً اطلاعات مربوط به وابستگی های بیشتر کتابخانه (fontconfig و بسته های منبع باز mesa-glu) را در Documentation Product بررسی کنید.

سایر فرمت های فایل پشتیبانی شده

می توانید عملیات Mail merge را برای سایر فرمت های فایل انجام دهید:

5%

در به‌روزرسانی‌های محصول Aspose مشترک شوید

خبرنامه ها و پیشنهادات ماهانه را مستقیماً به صندوق پستی خود تحویل بگیرید.

© Aspose Pty Ltd 2001-2024. تمامی حقوق محفوظ است.