Sao chép hoặc di chuyển trang tính Excel

Tệp Excel được sử dụng để quản lý dữ liệu phức tạp như ngân sách bộ phận hoặc báo cáo bán hàng hàng năm. Có thể có những tình huống mà bạn có một mẫu tạo sẵn mà bạn muốn sử dụng để tạo báo cáo. Đối với điều này, bạn có thể tạo một bản sao của trang tính mẫu. Bạn cũng có thể cần tổ chức các trang tính để thể hiện luồng dữ liệu. Đối với những trường hợp như vậy, bạn có thể sắp xếp lại các trang tính theo yêu cầu của mình. Về vấn đề này, bạn sẽ học cách sao chép và di chuyển các trang tính theo cách lập trình bằng C ++.

API C ++ để sao chép hoặc di chuyển trang tính Excel

Aspose.Cells for C ++ là một thư viện C ++ gốc cho phép bạn tạo, đọc và cập nhật các tệp Excel mà không yêu cầu cài đặt Microsoft Excel. API cũng hỗ trợ sao chép và di chuyển 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

Sao chép Trang tính trong Sổ làm việc Excel bằng C ++

Sau đây là các bước để sao chép trang tính trong sổ làm việc Excel.

Sau đây là mã mẫu để sao chép trang tính trong sổ làm việc 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
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Truy xuất trang tính
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Sao chép dữ liệu sang một trang tính mới từ một trang tính hiện có trong sổ làm việc.
sheets->AddCopy(new String("Sheet1"));

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Sao chép các trang tính từ một sổ làm việc sang một sổ làm việc khác

Aspose.Cells for C ++ cũng cho phép bạn sao chép trang tính giữa hai tệp Excel. Sau đây là các bước để sao chép trang tính từ tệp Excel này sang tệp Excel khác.

Sau đây là mã mẫu để sao chép trang tính từ sổ làm việc Excel này sang sổ làm việc Excel khác 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 nguồn
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Tải tệp Excel đích
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Truy xuất trang tính của sổ làm việc nguồn
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Truy xuất trang tính mà bạn muốn sao chép
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Sao chép trang tính đã truy xuất trước đó vào sổ làm việc mới
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Lưu tệp Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Di chuyển Trang tính sang Vị trí Khác bằng C ++

Sau đây là các bước để thay đổi vị trí của trang tính trong Sổ làm việc Excel.

Sau đây là mã mẫu để di chuyển trang tính đến một vị trí khác trong cùng một sổ làm việc bằng cách sử dụ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
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Truy xuất trang tính
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Truy cập trang tính đầu tiên
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Di chuyển trang tính đầu tiên đến vị trí thứ hai trong sổ làm việc.
sheet->MoveTo(1);

// Lưu tệp Excel
workbook->Save(outDir->StringAppend(new String("Sample1_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 sao chép trang tính trong cùng một sổ làm việc Excel hoặc giữa các sổ làm việc khác nhau. Hơn nữa, bạn đã thấy cách thay đổi vị trí của trang tính trong tệp Excel. Aspose.Cells for C ++ cung cấp nhiều tính năng khác để làm việc với các tệp Excel mà bạn có thể khám phá 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