Hợp nhất và hủy hợp nhất ô là một tính năng đơn giản và thường được sử dụng của Microsoft Excel. Hợp nhất các ô có thể tỏ ra hữu ích trong các tình huống, chẳng hạn như khi bạn có một trang tính có nhiều cột chia sẻ cùng một tiêu đề. Bạn có thể hợp nhất các ô phía trên các cột để tạo cho chúng một tiêu đề chung. Trong trường hợp các ô đã hợp nhất không còn được yêu cầu, bạn có thể hủy hợp nhất chúng một cách dễ dàng. Bạn có thể cần thực hiện các tác vụ này trong các ứng dụng C ++ của mình. Vì vậy, bài viết này sẽ hướng dẫn bạn cách hợp nhất và hủy hợp nhất các ô trong trang tính Excel theo cách lập trình bằng C ++.

API C ++ để hợp nhất và hủy hợp nhất các ô

Aspose.Cells for C ++ là thư viện C ++ gốc cho phép bạn tạo, đọc và sửa đổi các tệp Excel mà không yêu cầu cài đặt Microsoft Excel. API cũng hỗ trợ hợp nhất và hủy hợp nhất các ô trong một trang tính Excel. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.

PM> Install-Package Aspose.Cells.Cpp

Hợp nhất các ô trong một trang tính Excel bằng C ++

Trong ví dụ này, chúng tôi sẽ tạo một trang tính Excel trống và hợp nhất một vài ô bằng cách làm theo các bước dưới đây.

Mã mẫu sau đây cho thấy cách hợp nhất các ô trong trang tính Excel bằng C ++.

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Truy cập trang tính đầu tiên trong tệp Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Tạo một đối tượng Cells ot lấy tất cả các ô.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Hợp nhất các ô
cells->Merge(5, 2, 2, 3);

// Đưa dữ liệu vào ô
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));

// Tạo một đối tượng Kiểu 
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();

// Tạo một đối tượng Phông chữ
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();

// Đặt tên
font->SetName(new String("Times New Roman"));

// Đặt kích thước phông chữ
font->SetSize(18);

// Đặt màu phông chữ
font->SetColor(Systems::Drawing::Color::GetCyan());

// Làm cho văn bản in đậm
font->SetBold(true);

// Làm cho văn bản in nghiêng
font->SetItalic(true);

// Đặt màu nền trước
style->SetForegroundColor(Systems::Drawing::Color::GetRed());

// Đặt mẫu
style->SetPattern(BackgroundType_Solid);

// Áp dụng phong cách
cells->GetICell(5, 2)->SetIStyle(style);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hủy hợp nhất các ô trong một trang tính Excel bằng C ++

Sau đây là các bước để hủy hợp nhất các ô trong một trang tính Excel.

Mã mẫu sau đây trình bày cách hủy hợp nhất các ô trong trang tính Excel bằng C ++.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));

// Truy cập trang tính đầu tiên trong tệp Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Tạo một đối tượng Cells ot lấy tất cả các ô.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Hủy hợp nhất các ô.
cells->UnMerge(5, 2, 2, 3);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hợp nhất một phạm vi ô trong một trang tính Excel bằng C ++

Sau đây là các bước để hợp nhất một dải ô trong một trang tính Excel.

Mã mẫu sau đây cho thấy cách hợp nhất một dải ô trong trang tính Excel bằng C ++.

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Truy cập trang tính đầu tiên trong tệp Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Nhập dữ liệu vào Ô A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Tạo một phạm vi
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Hợp nhất dải ô thành một ô
range->Merge();

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hủy hợp nhất một phạm vi ô trong một trang tính Excel bằng C ++

Sau đây là các bước để hủy hợp nhất một dải ô trong một trang tính Excel.

Mã mẫu sau đây cho thấy cách hủy hợp nhất một dải ô trong trang tính Excel bằng C ++.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Truy cập trang tính đầu tiên trong tệp Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Tạo một phạm vi
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// UnMerge phạm vi
range->UnMerge();

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hợp nhất các ô của một phạm vi được đặt tên trong một trang tính Excel bằng cách sử dụng C ++

Aspose.Cells cho C ++ cũng cung cấp cho bạn khả năng hợp nhất các ô của một dải ô đã đặt tên. Để đạt được điều này, vui lòng làm theo các bước dưới đây.

Mã mẫu sau đây trình bày cách hợp nhất các ô của một dải ô được đặt tên bằng C ++.

// Đường dẫn thư mục nguồn.
StringPtr srcDir = new String("SourceDirectory\\");

// Đường dẫn thư mục đầu ra.
StringPtr outDir = new String("OutputDirectory\\");

// Tải tệp Excel đầu vào
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Truy cập trang tính đầu tiên trong tệp Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Tạo một phạm vi
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Đặt tên Phạm vi
range->SetName(new String("Named_Range"));

// Xác định đối tượng kiểu
intrusive_ptr<IStyle> style = workbook->CreateIStyle();

// Đặt căn chỉnh theo chiều ngang
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);

// Tạo một đối tượng StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();

// Đặt căn chỉnh theo chiều ngang to true
styleFlag->SetHorizontalAlignment(true);

// Áp dụng kiểu cho phạm vi
range->ApplyIStyle(style, styleFlag);

// Đặt dữ liệu trong phạm vi
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Hợp nhất Phạm vi
range->Merge();

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Hình ảnh của tệp Excel đầu ra được tạo bởi mã mẫu

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không có giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách hợp nhất và hủy hợp nhất các ô trong trang tính Excel bằng C ++. Hơn nữa, bạn đã thấy cách hợp nhất và hủy hợp nhất các phạm vi và các phạm vi đã đặt tên bằng cách sử dụng API Aspose.Cells cho C ++. API cung cấp nhiều tính năng bổ sung để làm việc với các tệp Excel mà bạn có thể khám phá chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm