I file Excel vengono utilizzati per la gestione di dati complessi come budget dipartimentali o report annuali sulle vendite. Potrebbero verificarsi situazioni in cui disponi di un modello già pronto che desideri utilizzare per creare un rapporto. Per questo, puoi creare una copia del foglio di lavoro del modello. Potrebbe anche essere necessario organizzare i fogli di lavoro per dimostrare il flusso di dati. In questi casi, è possibile riorganizzare i fogli di lavoro in base alle proprie esigenze. Alla luce di ciò, imparerai come copiare e spostare i fogli di lavoro a livello di codice usando C++.
- API C++ per copiare o spostare fogli di lavoro Excel
- Copia i fogli di lavoro all’interno di una cartella di lavoro di Excel utilizzando C++
- Copia i fogli di lavoro da una cartella di lavoro all’altra
- Sposta il foglio di lavoro in una posizione diversa usando C++
- Ottieni una licenza gratuita
API C++ per copiare o spostare fogli di lavoro Excel
Aspose.Cells for C++ è una libreria C++ nativa che consente di creare, leggere e aggiornare file Excel senza richiedere l’installazione di Microsoft Excel. L’API supporta anche la copia e lo spostamento di fogli di lavoro Excel. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.
PM> Install-Package Aspose.Cells.Cpp
Copia i fogli di lavoro all’interno di una cartella di lavoro di Excel utilizzando C++
Di seguito sono riportati i passaggi per copiare fogli di lavoro all’interno di una cartella di lavoro di Excel.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera la raccolta di fogli di lavoro utilizzando il metodo IWorkbook->GetIWorksheets().
- Aggiungi la copia del foglio di lavoro richiesto utilizzando IWorksheetCollection->AddCopy (intrusiveptrAspose::Cells::Systems::String sheetName).
- Infine, salva il file Excel usando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
Di seguito è riportato il codice di esempio per copiare un foglio di lavoro all’interno di una cartella di lavoro di Excel utilizzando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");
// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");
// Carica il file Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Recupera fogli di lavoro
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Copia i dati in un nuovo foglio da un foglio esistente all'interno della cartella di lavoro.
sheets->AddCopy(new String("Sheet1"));
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
Copia i fogli di lavoro da una cartella di lavoro all’altra
Aspose.Cells per C++ consente anche di copiare fogli di lavoro tra due file Excel. Di seguito sono riportati i passaggi per copiare un foglio di lavoro da un file Excel a un altro.
- Innanzitutto, carica i file Excel di origine e destinazione utilizzando la classe IWorkbook.
- Recupera la raccolta di fogli di lavoro della cartella di lavoro di origine utilizzando il metodo IWorkbook->GetIWorksheets().
- Recupera il foglio di lavoro che desideri copiare utilizzando il metodo IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Copia il foglio di lavoro nella cartella di lavoro di destinazione utilizzando IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet).
- Infine, salva il file Excel di destinazione utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
Di seguito è riportato il codice di esempio per copiare un foglio di lavoro da una cartella di lavoro di Excel a un’altra utilizzando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");
// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");
// Carica il file Excel di origine
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Carica il file Excel di destinazione
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));
// Recupera i fogli di lavoro della cartella di lavoro di origine
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();
// Recupera il foglio di lavoro che desideri copiare
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);
// Copia il foglio di lavoro recuperato in precedenza nella nuova cartella di lavoro
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Salva il file Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));
Sposta il foglio di lavoro in una posizione diversa usando C++
Di seguito sono riportati i passaggi per modificare la posizione del foglio di lavoro all’interno di una cartella di lavoro di Excel.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera la raccolta di fogli di lavoro utilizzando il metodo IWorkbook->GetIWorksheets().
- Recupera il foglio di lavoro che desideri spostare utilizzando il metodo IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Spostare il foglio di lavoro nella posizione desiderata utilizzando il metodo IWorksheet-> MoveTo (Aspose::Cells::Systems::Int32 index).
- Infine, salva il file Excel usando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
Di seguito è riportato il codice di esempio per spostare il foglio di lavoro in una posizione diversa all’interno della stessa cartella di lavoro utilizzando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");
// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");
// Carica il file Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Recupera fogli di lavoro
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Accedi al primo foglio
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);
// Sposta il primo foglio nella seconda posizione nella cartella di lavoro.
sheet->MoveTo(1);
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
Ottieni una licenza gratuita
Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.
Conclusione
In questo articolo, hai imparato come copiare fogli di lavoro all’interno della stessa cartella di lavoro di Excel o tra cartelle di lavoro diverse. Inoltre, hai visto come modificare la posizione del foglio di lavoro all’interno di un file Excel. Aspose.Cells per C++ offre molte altre funzionalità per lavorare con i file Excel che puoi esplorare visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul nostro forum di supporto gratuito.