Copia o sposta fogli di lavoro Excel

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

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.

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.

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.

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.

Guarda anche