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 ô
- Hợp nhất các ô trong một trang tính Excel bằng C ++
- Hủy hợp nhất các ô trong một trang tính Excel bằng C ++
- Hợp nhất một phạm vi ô trong một trang tính Excel bằng C ++
- Hủy hợp nhất một phạm vi ô trong một trang tính Excel bằng C ++
- 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 ++
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.
- Đầu tiên, tạo một thể hiện của lớp IWorkbook.
- Truy xuất trang tính bằng phương thức IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Lấy các ô bằng phương thức IWorksheet-> GetICells().
- Hợp nhất các ô bằng cách sử dụng ICells-> Merge (Aspose :: Cells :: Systems :: Int32 firstRow, Aspose :: Cells :: Systems :: Int32 firstColumn, Aspose :: Cells :: Systems :: Int32 totalRows, Aspose :: Phương thức Cells :: Systems :: Int32 totalColumns).
- Áp dụng kiểu cho các ô đã hợp nhất.
- Cuối cùng, lưu tệp Excel đầu ra bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
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ủ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.
- Tải tệp Excel bằng lớp IWorkbook.
- Truy xuất trang tính có chứa các ô đã hợp nhất bằng phương pháp IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Lấy các ô bằng phương thức IWorksheet-> GetICells().
- Hủy hợp nhất các ô bằng cách sử dụng ICells-> UnMerge (Aspose :: Cells :: Systems :: Int32 firstRow, Aspose :: Cells :: Systems :: Int32 firstColumn, Aspose :: Cells :: Systems :: Int32 totalRows, Aspose :: Cells :: Hệ thống :: Int32 totalColumns).
- Cuối cùng, lưu tệp Excel đầu ra bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
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ợ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.
- Đầu tiên, tạo một thể hiện của lớp IWorkbook.
- Truy xuất trang tính mong muốn bằng phương thức IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Chèn dữ liệu vào ô.
- Tạo phạm vi bằng cách sử dụng IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String địa chỉ) phương pháp.
- Hợp nhất dải ô bằng phương pháp IRange-> Merge().
- Cuối cùng, lưu tệp Excel đầu ra bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
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ủ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.
- Tải tệp Excel bằng lớp IWorkbook.
- Truy xuất trang tính có chứa các ô đã hợp nhất bằng phương pháp IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Tạo phạm vi bằng cách sử dụng IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String địa chỉ) phương pháp.
- Hủy hợp nhất phạm vi bằng phương pháp IRange-> UnMerge().
- Cuối cùng, lưu tệp Excel đầu ra bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
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ợ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.
- Tải tệp Excel bằng lớp IWorkbook.
- Truy xuất trang tính bằng phương thức IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- Tạo phạm vi bằng cách sử dụng IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String địa chỉ) phương pháp.
- Đặt tên của dải ô bằng cách sử dụng IRange-> SetName (intrusiveptrAspose::Cells::Systems::String giá trị) phương pháp.
- Tạo và áp dụng các kiểu cho phạm vi đã đặt tên.
- Hợp nhất các ô của dải ô đã đặt tên bằng phương pháp IRange-> Merge().
- Cuối cùng, lưu tệp Excel đầu ra bằng cách sử dụng IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) phương thức.
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")));
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.