สร้าง 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 files

  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 Product Updates

รับจดหมายข่าวและข้อเสนอรายเดือนที่ส่งตรงถึงกล่องจดหมายของคุณ