Skopiuj lub przenieś arkusze programu Excel

Pliki Excel służą do zarządzania złożonymi danymi, takimi jak budżety działów lub roczne raporty sprzedaży. Mogą wystąpić sytuacje, w których masz gotowy szablon, którego chcesz użyć do utworzenia raportu. W tym celu możesz utworzyć kopię arkusza szablonu. Może być również konieczne uporządkowanie arkuszy roboczych w celu zademonstrowania przepływu danych. W takich przypadkach możesz zmienić układ arkuszy zgodnie z własnymi wymaganiami. W świetle tego dowiesz się, jak programowo kopiować i przenosić arkusze kalkulacyjne za pomocą C++.

Interfejs API języka C++ do kopiowania lub przenoszenia arkuszy programu Excel

Aspose.Cells for C++ to natywna biblioteka C++, która umożliwia tworzenie, odczytywanie i aktualizowanie plików programu Excel bez konieczności instalowania programu Microsoft Excel. Interfejs API obsługuje również kopiowanie i przenoszenie arkuszy programu Excel. Możesz zainstalować API poprzez NuGet lub pobrać bezpośrednio z sekcji Downloads.

PM> Install-Package Aspose.Cells.Cpp

Skopiuj arkusze robocze w skoroszycie programu Excel przy użyciu języka C++

Poniżej przedstawiono kroki kopiowania arkuszy roboczych w skoroszycie programu Excel.

Poniżej znajduje się przykładowy kod służący do kopiowania arkusza w skoroszycie programu Excel przy użyciu języka C++.

// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Załaduj plik Excela
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Pobierz arkusze robocze
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Skopiuj dane do nowego arkusza z istniejącego arkusza w skoroszycie.
sheets->AddCopy(new String("Sheet1"));

// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Kopiuj arkusze robocze z jednego skoroszytu do drugiego

Aspose.Cells for C++ umożliwia również kopiowanie arkuszy między dwoma plikami Excela. Poniżej przedstawiono kroki, aby skopiować arkusz roboczy z jednego pliku programu Excel do innego.

Poniżej znajduje się przykładowy kod służący do kopiowania arkusza z jednego skoroszytu programu Excel do innego przy użyciu języka C++.

// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Załaduj źródłowy plik programu Excel
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Załaduj docelowy plik programu Excel
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Pobierz arkusze skoroszytu źródłowego
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Pobierz arkusz, który chcesz skopiować
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Skopiuj poprzednio pobrany arkusz do nowego skoroszytu
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Zapisz plik Excela
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Przenieś arkusz roboczy w inne miejsce za pomocą C++

Poniżej przedstawiono kroki zmiany położenia arkusza w skoroszycie programu Excel.

Poniżej znajduje się przykładowy kod służący do przenoszenia arkusza w inne miejsce w tym samym skoroszycie przy użyciu języka C++.

// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Załaduj plik Excela
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Pobierz arkusze robocze
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Uzyskaj dostęp do pierwszego arkusza
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Przenieś pierwszy arkusz na drugą pozycję w skoroszycie.
sheet->MoveTo(1);

// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Uzyskaj bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak kopiować arkusze robocze w tym samym skoroszycie programu Excel lub między różnymi skoroszytami. Ponadto widziałeś, jak zmienić pozycję arkusza kalkulacyjnego w pliku Excel. Aspose.Cells for C++ zapewnia wiele innych funkcji do pracy z plikami Excel, które możesz poznać odwiedzając oficjalna dokumentacja. W przypadku jakichkolwiek pytań skontaktuj się z nami na naszym darmowym forum pomocy technicznej.

Zobacz też