Ten krótki samouczek nauczy Cię, jak **utworzyć kopię arkusza Excela w C+++. Zawiera instrukcje konfiguracji środowiska, szczegółowe kroki do wykonania zadania, a na końcu możliwy do uruchomienia kod C++ wraz z opisem kodu. Po przesłaniu danych za pomocą kopiowania arkusza programu Excel w C++, wyjściowy skoroszyt można zapisać jako plik XLSX lub XLS.
Kroki, aby utworzyć kopię arkusza Excela w C++
- Dodaj pakiet Aspose.Cells.Cpp z menedżera pakietów NuGet
- Dołącz do programu niezbędne pliki nagłówkowe dla Aspose.Cells
- Załaduj źródłowy plik programu Excel do obiektu Workbook w celu skopiowania arkusza
- Uzyskaj odwołanie do pierwszego worksheet ze skoroszytu wejściowego
- Utwórz pusty skoroszyt, do którego zostanie skopiowany arkusz
- Uzyskaj odwołanie do pierwszego arkusza z nowego pustego skoroszytu
- Wywołaj funkcję kopiowania arkusza wyjściowego, aby skopiować dane z arkusza wejściowego
- Zapisz skoroszyt wyjściowy na dysku po skopiowaniu danych arkusza ze skoroszytu wejściowego
Tutaj przedstawiono sekwencję kroków kopiowania arkusza z jednego skoroszytu do drugiego w C++, tak jak ustawienie środowiska, a następnie dodawanie niezbędnych plików nagłówkowych. W kolejnych krokach otwierany jest skoroszyt wejściowy i tworzony jest skoroszyt wyjściowy, uzyskuje się dostęp do odwołań do pierwszego arkusza każdego skoroszytu, a na koniec całe dane arkusza źródłowego są kopiowane do arkusza docelowego. Ostatecznie skoroszyt wyjściowy jest zapisywany w formacie XLSX, jednak można go zapisać w dowolnym innym formacie obsługiwanym przez MS Excel.
Kod do skopiowania arkusza roboczego do innego skoroszytu w C++
#include "Aspose.Cells.h" | |
using namespace std; | |
int main(int argc, char** argv) | |
{ | |
// Initialize and load license to avoid trial version limitations and remove watermark in the output workbook | |
intrusive_ptr<License> license = new License(); | |
license->SetLicense(new String("Aspose.Cells.lic")); | |
// Set input and output file names | |
StringPtr inputWorkbookName = new String("sampleInput.xlsx"); | |
StringPtr outputWorkbookName = new String("outputWorkbook.xlsx"); | |
// Load the input workbook for copying worksheet | |
intrusive_ptr<IWorkbook> inputWorkbook = Factory::CreateIWorkbook(inputWorkbookName); | |
// Get reference to the first worksheet in the input workbook | |
intrusive_ptr<IWorksheet> inputWorksheet = inputWorkbook->GetIWorksheets()->GetObjectByIndex(0); | |
// Create a new empty workbook | |
intrusive_ptr<IWorkbook> outputWorkbook = Factory::CreateIWorkbook(); | |
// Get reference to the first worksheet in the output workbook | |
intrusive_ptr<IWorksheet> outputWorksheet = outputWorkbook->GetIWorksheets()->GetObjectByIndex(0); | |
// Copy worksheet from input workbook to output workbook | |
outputWorksheet->Copy(inputWorksheet); | |
// Save the output workbook | |
outputWorkbook->Save(outputWorkbookName); | |
//Show successful execution message on the console | |
Console::WriteLine((StringPtr)new String("Worksheet copied successfully")); | |
} |
Wskaźnik intrusive_ptr służy do zapisywania wskaźnika do różnych obiektów, a funkcja Factory::CreateIWorkbook służy do ładowania istniejącego skoroszytu i tworzenia nowego skoroszytu. Możesz uzyskać dostęp do odniesienia do konkretnego arkusza za pomocą indeksu liczonego od zera za pomocą funkcji GetIWorksheets(). Należy pamiętać, że dane są kopiowane z arkusza źródłowego do arkusza docelowego, jednak można kontrolować ten proces kopiowania za pomocą obiektu klasy CopyOptions w funkcji Kopiuj, tak jak można ustawić flagę kopiowania wartości w arkuszu docelowym, jeśli formuła jest nieprawidłowa dla arkusz docelowy, ustaw flagę do kopiowania nazw i ustaw wiele innych właściwości.
W tym prostym samouczku nauczyliśmy się * jak skopiować arkusz kalkulacyjny w Excelu przy użyciu C++*, jednak jeśli chcesz dowiedzieć się, jak scalać komórki w Excelu przy użyciu C++ zapoznaj się z artykułem na jak scalać komórki w Excelu przy użyciu C++.