צור 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 בלבד ונתונים מ-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 Docs. פשוט הורד את הנתונים הדרושים בפורמט 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, Clang ו- libc++ נדרשים עבור macOS

אם אתה מפתח תוכנה עבור Linux או macOS, בדוק מידע על תלות בספריות נוספות (חבילות קוד פתוח של fontconfig ו- mesa-glu) בתיעוד המוצר.

פורמטי קבצים נתמכים אחרים

אתה יכול לבצע פעולת Mail merge עבור פורמטים אחרים של קבצים:

5%

הירשם לעדכוני מוצר Aspose

קבל ניוזלטרים והצעות חודשיים שנשלחו ישירות לתיבת הדואר שלך.

© Aspose Pty Ltd 2001-2024. כל הזכויות שמורות.