Sao chép hàng và cột là tác vụ phổ biến được thực hiện khi làm việc với tệp Excel. Có thể có những trường hợp bạn cần sao chép các hàng hoặc cột trong tệp Excel theo chương trình. Đối với những trường hợp như vậy, bài viết này sẽ hướng dẫn bạn cách sao chép hàng và cột trong tệp Excel bằng C ++.

API C ++ để sao chép hàng và cột trong tệp Excel

Aspose.Cells for C ++ là một 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 cung cấp khả năng sao chép hàng và cột trong tệp 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

Sao chép một hàng trong tệp Excel bằng C ++

Sau đây là hình ảnh của tệp Excel nguồn mà chúng ta sẽ sử dụng trong các ví dụ sau.

Bảng tính nguồn

Sau đây là các bước để sao chép một hàng trong tệp Excel bằng C ++.

Mã mẫu sau đây cho thấy cách sao chép một hàng trong tệp Excel bằng C ++.

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

// Đườ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("Sample1.xlsx")));

// Nhận trang tính đầu tiên
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Sao chép hàng
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Hình ảnh hiển thị hàng đã sao chép

Hình ảnh hiển thị hàng đã sao chép

Sao chép nhiều hàng trong tệp Excel bằng C ++

Để sao chép nhiều hàng, chúng tôi sẽ sử dụng phương thức CopyIRows chấp nhận một tham số bổ sung cho biết tổng số hàng sẽ được sao chép. Để sao chép nhiều hàng, hãy làm theo các bước dưới đây.

Mã mẫu sau đây cho thấy cách sao chép nhiều hàng trong tệp Excel bằng C ++.

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

// Đườ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("Sample1.xlsx")));

// Nhận trang tính đầu tiên
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Sao chép hàng
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Hình ảnh hiển thị các hàng đã sao chép

Hình ảnh hiển thị các hàng đã sao chép

Sao chép một cột trong tệp Excel bằng C ++

Sau đây là các bước để sao chép một cột trong tệp Excel bằng C ++.

Mã mẫu sau đây cho thấy cách sao chép một cột trong tệp Excel bằng C ++.

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

// Đườ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("Sample1.xlsx")));

// Nhận trang tính đầu tiên
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Sao chép cột
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Hình ảnh hiển thị cột đã sao chép

Hình ảnh hiển thị cột đã sao chép

Sao chép nhiều cột trong tệp Excel bằng C ++

Để sao chép nhiều cột, chúng tôi sẽ sử dụng phương thức CopyIColumns chấp nhận một tham số bổ sung cho biết tổng số cột được sao chép. Để sao chép nhiều cột, hãy làm theo các bước dưới đây.

Mã mẫu sau đây cho thấy cách sao chép nhiều cột trong tệp Excel bằng C ++.

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

// Đườ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("Sample1.xlsx")));

// Nhận trang tính đầu tiên
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Sao chép các cột
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Hình ảnh hiển thị các cột đã sao chép

Hình ảnh hiển thị các cột đã sao chép

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

Để dùng thử API mà không có giới hạn đánh giá, bạn có thể 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 sao chép hàng và cột trong tệp Excel bằng C ++. Các mẫu mã được chia sẻ cho thấy cách sao chép một và nhiều hàng và cột trong một tệp Excel. Chúng tôi đã sử dụng API Aspose.Cells cho C ++ để đạt được điều này. Đây là một API mạnh mẽ cung cấp nhiều tính năng bổ sung để làm việc với các tệp Excel. Bạn có thể khám phá API 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ỳ thắc mắc nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm