Tạo docx bằng Mail merge trong C++

Thư viện C++ tốc độ cao để thực hiện thao tác Mail merge cho docx mẫu và dữ liệu từ nguồn dữ liệu tùy chỉnh

Giải pháp của chúng tôi cung cấp một API độc lập với nền tảng mạnh mẽ. Sử dụng API tài liệu Mail merge của chúng tôi để phát triển phần mềm cấp cao cho nền tảng C++. Đây là một giải pháp phần mềm mạnh mẽ để hợp nhất các mẫu ở Word định dạng và PDF và dữ liệu từ các nguồn dữ liệu tùy chỉnh và tiếp tục xuất kết quả sang DOCX, PDF, HTML và các định dạng phổ biến khác bằng C++.

Xem đoạn mã

Trộn Mail merge Word tệp và dữ liệu Excel trong C++

Thư viện C++ nhanh chóng để thực hiện hợp nhất Thư với dữ liệu Excel.

Mail Merge SDK của chúng tôi cho phép bạn điền mẫu Word bằng dữ liệu của bạn từ Excel trang tính. Dựa trên Mail Merge API của chúng tôi, bạn có thể tạo giải pháp phần mềm của riêng mình bằng cách sử dụng C++, cho phép bạn tự động hóa email từ Excel và tạo báo cáo bằng dữ liệu Excel.

Để phối Mail merge từ Excel sang Word, chỉ cần thực hiện thao tác phối Mail merge trong C++ và xuất kết quả sang bất kỳ Word định dạng được hỗ trợ nào.

Trộn Mail merge từ Excel sang Word bằng cách sử dụng C++

Với Mail merge API mạnh mẽ của chúng tôi, bạn có thể tạo tài liệu được cá nhân hóa trong C++ chỉ bằng mẫu Hợp nhất từ và dữ liệu từ Excel.

Cách sử dụng Mail merge từ Excel:

  • Tạo một mẫu Word với các trường hợp nhất đặc biệt để chèn dữ liệu của bạn từ Excel vào.
  • Chuyển đổi Excel tài liệu sang tệp CSV và sau đó sang JSON tệp phù hợp để phân tích cú pháp bằng API của chúng tôi.
  • Thực hiện thao tác Mail hợp nhất mẫu Word và dữ liệu được chuyển đổi từ Excel sang CSV rồi sang JSON.

Mail merge với Google Documents

Với Mail merge API có độ chính xác cao của chúng tôi, bạn cũng có thể thực hiện thao tác Mail merge với Google Tài liệu. Chỉ cần tải xuống dữ liệu cần thiết ở Word định dạng và Excel, đảm bảo rằng mẫu Word chứa các trường hợp nhất và thực hiện thao tác hợp nhất Thư trong C++, tương tự như thuật toán được mô tả trong phần trước.

Để dùng thử công cụ web phối Mail merge mạnh mẽ này, hãy tải một mẫu Word với các trường phối đặc biệt và dữ liệu từ Excel được chuyển đổi như mô tả ở trên. Sau khi chạy mã, hãy xuất kết quả sang bất kỳ định dạng nào bằng cách sử dụng C++.

Ví dụ sau đây cho biết cách thực hiện thao tác Mail merge để tạo Word tài liệu trong C++:

Thực hiện thao tác Mail merge bằng cách sử dụng docx mẫu trong C++
Tải lên mẫu Mail merge
Mã vận hành
Tải lên dữ liệu Mail merge
Chọn định dạng mục tiêu từ danh sách
dotnet add package Aspose.Words.Cpp
Sao chép
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;
};
Mã vận hành

Cách sử dụng Mail merge trong docx tệp

  1. Cài đặt Aspose.Words for C++.
  2. Thêm tham chiếu thư viện (nhập thư viện) vào dự án C++ của bạn.
  3. Tạo docx mẫu hợp nhất với các trường hợp nhất.
  4. Mở tệp mẫu trong C++.
  5. Gọi phương thức Execute(), chuyển các trường hợp nhất và giá trị của chúng vào đó.
  6. Gọi phương thức Save(), chuyển một tên tệp đầu ra với phần mở rộng bắt buộc.
  7. Nhận kết quả của thao tác Mail merge dưới dạng Word tệp.

C++ thư viện để sử dụng Mail merge trong docx

Có ba tùy chọn để cài đặt Aspose.Words for C++ vào môi trường nhà phát triển của bạn. Vui lòng chọn một cái giống với nhu cầu của bạn và làm theo hướng dẫn từng bước:

yêu cầu hệ thống

Bạn có thể sử dụng thư viện C++ này để phát triển phần mềm trên Microsoft Windows, Linux và macOS:

  • GCC >= 6.3.0 và Clang >= 3.9.1 là bắt buộc đối với Linux
  • Xcode >= 12.5.1, Clang và libc++ là bắt buộc đối với macOS

Nếu bạn phát triển phần mềm cho Linux hoặc macOS, vui lòng kiểm tra thông tin về các phụ thuộc thư viện bổ sung (gói mã nguồn mở fontconfig và mesa-glu) trong Tài liệu Sản phẩm.

Các định dạng tệp được hỗ trợ khác

Bạn có thể thực hiện thao tác Mail merge cho các định dạng tệp khác:

5%

Đăng ký cập nhật sản phẩm của Aspose

Nhận bản tin hàng tháng và ưu đãi gửi trực tiếp đến hộp thư của bạn.

© Aspose Pty Ltd 2001-2024. Đã đăng ký Bản quyền.