يوفر حلنا API مستقلة قوية لمنصة. استخدم API مستند Mail merge لتطوير برنامج عالي المستوى لمنصة C++. هذا حل برمجي قوي لدمج القوالب في تنسيقات Word و PDF والبيانات من مصادر البيانات المخصصة وكذلك تصدير النتيجة إلى DOCX, PDF, HTML والتنسيقات الشائعة الأخرى باستخدام C++.
مكتبة Fast C++ لتنفيذ دمج البريد مع بيانات Excel.
يسمح لك Mail Merge SDK الخاص بنا بملء قالب Word ببياناتك من ورقة Excel. استنادًا إلى Mail Merge API، يمكنك إنشاء حل برمجي خاص بك باستخدام C++، والذي يسمح لك بأتمتة رسائل البريد الإلكتروني من Excel وإنشاء تقارير باستخدام بيانات Excel.
Mail merge من Excel إلى Word، ما عليك سوى تنفيذ عملية Mail merge في C++ وتصدير النتيجة إلى أي تنسيقات Word مدعومة.
من خلال Mail merge API القوية الخاصة بنا، يمكنك إنشاء مستندات مخصصة في C++ باستخدام قالب دمج Word وبيانات من Excel فقط.
كيفية استخدام Mail merge من Excel:
من خلال Mail merge API عالية الدقة، يمكنك أيضًا إجراء عملية Mail merge باستخدام محرر مستندات Google. ما عليك سوى تنزيل البيانات الضرورية بتنسيق Word و Excel، وتأكد من احتواء قالب Word على حقول دمج وتنفيذ عملية دمج المراسلات في C++، على غرار الخوارزمية الموضحة في القسم السابق.
لتجربة أداة ويب Mail merge القوية هذه، قم بتحميل قالب Word مع حقول دمج خاصة وبيانات من Excel تم تحويلها كما هو موضح أعلاه. بعد تشغيل الكود، قم بتصدير النتيجة إلى أي تنسيق باستخدام C++.
يوضح المثال التالي كيفية تنفيذ عملية Mail merge لإنشاء مستند Word في C++:
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++ في بيئة المطور لديك. يرجى اختيار واحد يناسب احتياجاتك واتبع التعليمات خطوة بخطوة:
يمكنك استخدام مكتبة C++ هذه لتطوير البرامج على Microsoft Windows و Linux و macOS:
إذا قمت بتطوير برنامج لنظام التشغيل Linux أو macOS، فالرجاء التحقق من المعلومات حول التبعيات الإضافية للمكتبة (fontconfig mesa-glu مفتوحة المصدر) في وثائق المنتج.
يمكنك إجراء عملية Mail merge لتنسيقات الملفات الأخرى: